使用 py.test --cov 从内部 setup.py pytest.main

Using py.test --cov from inside setup.py pytest.main

我正在开发一个带有一些测试的包。

使用 CMD:

py.test --cov my_pkg

我用协变量得到结果:

--------------- coverage: platform win32, python 2.7.9-final-0 ----------------
Name                            Stmts   Miss  Cover
---------------------------------------------------
my_pkg\__init__       8      0   100%
my_pkg\general        2      0   100%
---------------------------------------------------
TOTAL                              10      0   100%

失败:

当试图将其集成到 pytest.main() 和 运行 中时:

python setup.py test

具有以下内容:

============================= test session starts =============================
platform win32 -- Python 2.7.9 -- py-1.4.26 -- pytest-2.7.0
rootdir: C:\Users\kobi.kalif\Projects\automation_utilities, inifile:
plugins: cov, xdist

ERROR: file not found: --cov my_pkg

相关代码:

class PyTest(test_command):
    """class py.test for the testing

    """
    user_options = []

    def __init__(self, dist, **kw):
        test_command.__init__(self, dist, **kw)
        self.pytest_args = ["--cov my_pkg"]

.....

    def run_tests(self):
        # import here, cause outside the eggs aren't loaded
        import pytest
        err_no = pytest.main(self.pytest_args)
        sys.exit(err_no)

问题:

我如何 运行 测试 setup.py 文件 pytest.main 中的覆盖率?

根据 the documentation 你应该这样做:

self.pytest_args = ["--cov", "my_pkg"]

或:

self.pytest_args = "--cov my_pkg"