当前位置: 首页 > 知识库问答 >
问题:

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

丁翊歌
2023-03-14

我无法从Python项目在测试目录中运行coverage.py。我有一个测试目录,包含一个__init__. py文件和一些test_*. py文件,在那里我定义了我想在每个测试文件的__main__块中运行的测试。

测试目录与位于同一文件夹中。特拉维斯。yml文件,看起来像:

当我以coverage run tests/test\u错误的形式运行单个文件时,脚本块会起作用。py,但每当我尝试运行目录中的所有文件时,它都不起作用。

我尝试了以下解决方案

>

每当我运行单个文件的覆盖范围时,codecov输出如下:

这就是我要找的,但是当涉及到测试目录中包含的多个Python文件时。因为正如您所看到的,这是codecov输出,当覆盖运行测试/test_investpy.py时,而不是整个测试/目录。

欢迎任何帮助或信息!提前说声谢谢!

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

共有1个答案

爱唯
2023-03-14

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

执行test/中包含的每个测试,并在codecov中获得代码覆盖结果,请使用中的脚本行。travis.yml应该是:pytest--cov-报告术语--cov=investpy测试/,通过pytest您可以为指定test/目录的项目生成终端覆盖报告。

因此,。特拉维斯。yml在同一项目上运行多个测试以组合代码覆盖率结果时,应:

因此,在Travis CI上运行覆盖率测试所需的包包括:

  • pip安装pytest==4.5。0
  • pip安装codecov==2.0。15
  • pip-install-pytest-cov==2.7。1

因为我已经解决了这个问题,如果你有同样的问题,请随时问我任何相关的问题,我可以帮助你!如果你觉得这个答案很有用,请给这个答案打分!

 类似资料:
  • 使用jacoco代理并获取测试覆盖率报告有大量答案。大多数答案都是一半,我有点困惑。 以下是我想做的:1。我的Java应用程序正在某个远程服务器上运行。说IP-192.168.17.7 我使用以下命令运行测试:mvn-Denv=stage-Dmaven。测验失败ignore=true-DsuiteFile=src/test/java/Smoke。xml测试 现在我如何通过使用Jacoco代理获得J

  • 如果不使用JaCoCo,有没有办法通过Gradle命令在我的测试中运行代码覆盖率?似乎没有运行覆盖率测试的Gradle任务。我看到的唯一选项是Android Studio UI上的一个按钮,它将运行代码覆盖率测试。 理想情况下,我希望通过命令行的代码覆盖率自动化测试,并访问它生成的报告。 顺便说一句,我对雅科没有任何反对意见。我只想知道是否有办法在不使用库的情况下做到这一点。 编辑:可能相关,但没

  • 正如我在开始时所说的,单元测试成功率确实成功地显示出来,所以我相信只需要一个小的改变就可以使单元测试复盖范围发挥作用。 任何帮助都将不胜感激!

  • 但是当我运行test时,两个浏览器实例都打开了(Chrome首先打开并开始执行,延迟后Firefox打开)。在这种情况下,驱动程序对象被Firefox驱动程序覆盖,chrome停止执行。测试继续在Firefox上执行并成功完成。 项目的结构是这样的: 创建了一个DriverBase.class来加载与浏览器对应的驱动程序,该浏览器具有my@beforeSuite. crteated页面的单个类。(

  • 11.3. 测试覆盖率 就其性质而言,测试不可能是完整的。计算机科学家Edsger Dijkstra曾说过:“测试能证明缺陷存在,而无法证明没有缺陷。”再多的测试也不能证明一个程序没有BUG。在最好的情况下,测试可以增强我们的信心:代码在很多重要场景下是可以正常工作的。 对待测程序执行的测试的程度称为测试的覆盖率。测试覆盖率并不能量化——即使最简单的程序的动态也是难以精确测量的——但是有启发式方法

  • 免责声明初学者问题! 为了回答这个问题,我的项目结构高度简化,如下所示: 在阅读了Jeff Knupp关于单元测试的博客文章并写了一系列测试之后,我想看看我的代码现在被测试覆盖了多少。所以我安装了coverage.py,以下内容让我困惑: $coverage运行main。py(显示脚本中的打印/日志) $覆盖报告main.py 姓名、Stmts、小姐、封面 主要的py,114,28,75% 问题是