通过Travis-CI在测试目录上运行覆盖

时间:2019-05-28 08:22:26

标签: python code-coverage travis-ci pytest coverage.py

我无法从Python项目的tests目录中运行coverage.py。我有一个包含.add-margin-50px{ margin-right: 50px; } 文件和一些__init__.py文件的测试目录,在其中定义要在每个测试文件的test_*.py块中运行的测试。

tests目录与__main__文件位于同一文件夹中,如下所示:

enter image description here

当我以.travis.yml运行单个文件时,脚本块将起作用,但是每当我尝试运行目录中的所有文件时,它将不起作用。

我尝试了以下解决方案:

每当我为单个文件运行coverage时,codecov都会输出以下内容:

enter image description here

我要寻找的是什么,但是要测试tests目录中包含的多个Python文件。如您所见,这是coverage run tests/test_errors.py而不是整个“ tests /”目录下的codecov输出。

欢迎任何帮助或信息!预先谢谢你!

(注意:有关项目结构的更多信息,您可以在https://github.com/alvarob96/investpy中检查该项目,因为它是一个开源项目)

1 个答案:

答案 0 :(得分:0)

经过更多的研究和测试,我发现pytest-cov文档有一个附录,可为一次测试运行生成多个覆盖率报告:https://pytest-cov.readthedocs.io/en/latest/reporting.html

要执行tests/中包含的每个测试并在codecov中获得代码覆盖率结果,.travis.yml中的脚本行应为:pytest --cov-report term --cov=investpy tests/,通过{{3} },您可以为指定tests/目录的项目生成终端覆盖率报告。

因此,在同一项目上运行多个测试以合并代码覆盖率结果时,.travis.yml应该是:

pytest

因此在Travis-CI上运行覆盖率测试所需的软件包为:

  • pip install pytest==4.5.0
  • pip install codecov==2.0.15
  • pip install pytest-cov==2.7.1

我已经解决了,如果您有相同的问题,可以随时问我任何相关问题,无论如何我都可以为您提供帮助!如果您认为此答案有用,请对这个答案进行评分!