繁体   English   中英

Python unittest,仅运行失败的测试

[英]Python unittest, running only the tests that failed

我有一个使用unittest从命令行运行的大型python测试文件。 有些测试需要一段时间才能运行。 这是一个轻度的痛点,因为我通常只关心我添加的最后一个测试。 我想要的是:

  1. 添加测试。
  2. 运行测试(一个失败,因为我没有编写使它通过的代码)
  3. 实施行为
  4. 仅运行上次失败的测试
  5. 修复我在实现代码时犯的愚蠢错误
  6. 仅运行失败的测试,这次通过
  7. 运行所有测试以找出我的问题。

是否可以从命令行执行此操作?

每个测试函数的声明如下:

    def test_something_something(self):

如果在前面添加下划线,例如:

    def _test_something_something(self):

该测试将被忽略。 您可以做的一件事是快速查找并替换为vim 找到所有“ test_”并将其替换为“ _test_”,然后找到一个失败的测试并删除下划线。

(不是完全自动化的解决方案,但是比现有解决方案要好)

如果将测试类的名称作为参数传递给测试脚本,则仅运行该测试。 例如,如果您只想在脚本test_whatever.pyMyTest类中运行测试:

python3 test_whatever.py MyTest

您也可以将单个测试指定为该类的成员。 例如,假设您要在类MyTest运行测试test_something

python3 test_whatever.py MyTest.test_something

只需使用--last-failed选项运行测试(您可能需要pytest)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM