如果任何单元测试失败,如何使 Python 的覆盖工具失败?

Posted

技术标签:

【中文标题】如果任何单元测试失败,如何使 Python 的覆盖工具失败?【英文标题】:How can I make Python's coverage tool fail if any unit tests fail? 【发布时间】:2019-02-06 00:59:09 【问题描述】:

我想使用一个 shell 脚本来确保我的单元测试通过并且我的代码有足够的测试覆盖率。我只想运行我的测试代码一次

我希望我可以通过 coverage 工具运行我的测试,并且从那一次运行开始:

    如果一项或多项测试失败,“coverage run”命令将失败,这将通知我的 shell 脚本出现问题。 或者如果覆盖不足,“覆盖运行”命令将失败(使用 --fail-under)。

如果不重定向命令输出和搜索关键字(例如失败),您将如何做到这一点?

【问题讨论】:

你在使用pytest-cov吗?我现在不在工作中查看我正在使用的设置,我认为您要问的是 pytest-cov 的默认设置。 您确定这不能按原样工作吗?你是如何进行测试的? 【参考方案1】:

coverage run 将以您正在运行的程序的退出状态退出。如果你以这种方式运行你的测试运行器,那么退出状态应该是透明的。

【讨论】:

以上是关于如果任何单元测试失败,如何使 Python 的覆盖工具失败?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Django 中使用不同的设置进行单元测试?

如何使覆盖范围包括未测试的文件?

如何在C#中对单元测试性能优化进行单元测试?

徒手搭建Python单元测试框架

单元测试覆盖在 Sonarqube 中不可见

如果测试失败,则停止/失败 docker build