2016-01-30 42 views
4

我对Python很陌生,试图学习工具集。pytest只运行已更改的文件?

我已经想出如何让py.test -f观看我的测试,因为我的代码。有一件事我没有弄清楚,如果有办法做一个更聪明的观察者,那就像Ruby的Guard库一样。

使用guard + minitest我得到的行为是,如果我保存一个像my_class.rb这样的文件,那么执行my_class_test.rb,如果我在cli中打了enter,它将运行所有测试。

pytest到目前为止我还没有能够找到一种方法来运行对应于上次触摸文件的测试文件,从而避免了等待整个测试套件运行,直到获得当前文件传递。

pythonistas你会怎么做?

谢谢!

回答

8

一种可能性是将pytest-testmonpytest-watch一起使用。

它使用coverage.py来跟踪哪些测试涉及哪些代码行,并且只要您更改一行代码,它就会以某种方式重新运行执行该行的所有测试。

+0

这对我来说工作得很好。非常感谢您的建议! – Andrew

-1

还有pytest-xdist其中有一个功能叫做:

--looponfail:在子进程反复运行测试。每次运行后,py.test会一直等到项目中的文件发生更改,然后重新运行先前失败的测试。重复此操作直至所有测试都通过,然后再次执行完整运行。