首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过xdist插件并行执行pytest?

如何通过xdist插件并行执行pytest?
EN

Stack Overflow用户
提问于 2019-06-14 10:51:39
回答 1查看 490关注 0票数 0

如何在多个自定义环境中并行运行我的pytest?我也有发热症。不确定这个插件是否有帮助

test_test.py

代码语言:javascript
复制
@pytest.mark.env("env1", "env2", "env3")
def test_check(env):
    print("Chosen {} for test_check function".format(env))

@pytest.mark.env("env1", "env2")
def test_check2(env):
    print("Chosen {} for test_check2 function".format(env))

@pytest.mark.env("env1")
def test_check3(env):
    print("Chosen {} for test_check3 function".format(env))

当我运行命令时:

代码语言:javascript
复制
pytest -v -s test_test.py --env env1

这是我的输出..。

代码语言:javascript
复制
collected 3 items                                                                                                                                              

conftest.py::test_check Chosen env1 for test_check function
PASSED
conftest.py::test_check2 Chosen env1 for test_check function
PASSED
conftest.py::test_check3 Chosen env1 for test_check function 
PASSED

============================================================= 3 passed in 0.02 seconds ==============================================================

类似地,当我运行命令时:

代码语言:javascript
复制
pytest -v -s test_test.py --env env2

这是我的输出..。

代码语言:javascript
复制
collected 2 items                                                                                                                                              

conftest.py::test_check Chosen env2 for test_check function
PASSED
conftest.py::test_check2 Chosen env2 for test_check function
PASSED

============================================================= 2 passed in 0.02 seconds ==============================================================

我这里有两个条件,

  1. 我希望同时运行多个环境。
  2. 它需要并行运行

所以我选择了xdist插件,但是我不确定我是否能用我的例子运行。对于我的示例,可以使用xdist运行吗?

我需要这样的东西..。

代码语言:javascript
复制
pytest -v -s -d --tx test_test.py --env env1 --env env2

要同时运行两个env1,env2

EN

回答 1

Stack Overflow用户

发布于 2022-05-12 09:59:50

检查一下这个:

-dist加载组:测试按xdist_group标记分组。组被作为一个整体分配给可用的工人。这可以保证所有具有相同xdist_group名称的测试都在同一个工作人员中运行。

代码语言:javascript
复制
@pytest.mark.xdist_group(name="group1")
def test1():
    pass

class TestA:
    @pytest.mark.xdist_group("group1")
    def test2():
        pass

这将确保test1和TestA::test2在同一个工作器中运行。没有xdist_group标记的测试通常分布在--dist=load模式中。

https://pypi.org/project/pytest-xdist/#:~:text=--dist%20loadgroup%3A%20Tests,dist%3Dload%20mode

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56596696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档