【问题标题】:How to run a pytest fixture on a remote machine如何在远程机器上运行 pytest 夹具
【发布时间】:2024-04-21 19:45:02
【问题描述】:

设置:我正在为我们的自动化框架使用 Jenkins(管道)+ pytest。我们有一个在 Ubuntu 上运行的 jenkins master,它连接到代理 A(运行 Windows 10 的机器)和 B(运行 Windows 10 的机器)

问题:我们有一个功能测试需要在机器 B 上运行。这个测试需要首先运行两个夹具:夹具A 需要在机器 A 上运行(以设置机器 A),以及fixtureB 需要在机器 B 上运行。 是否有插件/功能可以控制每个灯具的运行位置?具体在上面的例子中,我需要fixtureA在机器A上运行。

我知道我可以将 fixtureA 定义为普通函数并在 jenkins 管道中指定在机器 A 上运行该函数。但这会破坏使用 pytest 的全部目的(让 pytest 管理所有设置和清理逻辑用于不同的测试)。

如果需要,请随时建议更改整个设置(我在这里非常灵活)。

【问题讨论】:

    标签: python jenkins-pipeline pytest remote-server fixtures


    【解决方案1】:

    迄今为止最快的逻辑方式 - 让夹具构建器在条件下运行函数(将夹具 A、B 转换为函数):

    @pytest.fixture
    def env_builder():
        if condition:
            return run_function1()
        else
            return run_function2()
    

    【讨论】:

      最近更新 更多