选择测试套件以使用 pytest 进行覆盖

问题描述

我正在使用 pytest 运行一组测试,并且还想使用 coverage 包测量其覆盖率。

我的代码中有一些装饰器,使用以下内容将测试划分为多个套件:

@pytest.mark.firstgroup
def test_myfirsttest():
    assert True is True

@pytest.mark.secondgroup
def test_mysecondtest():
    assert False is False

我需要找到类似的东西:

coverage run --suite=firstgroup -m pytest

所以在这种情况下,只有第一个测试(因为它在正确的套件中)将用于测试覆盖率。

当我直接使用 pytest 时,套件工作正常,但我不知道如何在 coverage 中使用它们

有没有办法配置 coverage 来实现这一点?

解决方法

你可以传递任何你想进行 pytest 的参数。如果这条线有效:

pytest --something --also=another 1 2 foo bar

然后你可以像这样在覆盖范围内运行它:

coverage run -m pytest --something --also=another 1 2 foo bar