有没有办法启动仅与更改的代码相关的单元测试?

Vik*_*lyi 10 python dependencies unit-testing code-coverage python-unittest

在我的Python项目中,我们有大量的单元测试(数千个).虽然它们在逻辑上分布在文件和类之间,但我有时需要花费大量时间来查找它们,这些内容涵盖了我正在改变的功能.

当然,我可以从一些特定的文件/类中运行所有测试,但是由于大量的测试,再次运行它们会非常耗时(我在每次保存文件后都执行单元测试)我的IDE).

所以一般来说我需要一些解决方案,一次做以下活动:

  • 跟踪自上次保存文件以来哪些文件已更改
  • 跟踪那些文件中已更改的代码与覆盖该代码的单元测试之间的依赖关系
  • 有选择地只执行那些覆盖受影响代码的单元测试

有没有人对类似的东西有所了解?

And*_*den 8

您可能想要签出pytest-incremental:

我们的想法是通过执行并非所有测试而只执行"必需"测试来更快地执行测试.

通过pypi安装:

pip install pytest-incremental
Run Code Online (Sandbox Code Playgroud)

用法:

$ py.test --inc
Run Code Online (Sandbox Code Playgroud)

我认为它可以满足您的需求,它"以递归方式查找导入以查找依赖项(使用AST)"并仅运行已更改的测试.

  • 还有https://github.com/eventbrite/nose-knows,它为鼻子做了类似的事情. (2认同)