我是Python的新手,试图学习工具集。
我已经想出了如何在我编码的时候让my_class.rb
看我的测试。我无法弄清楚的一件事是,是否有办法做一个更智能的观察者,就像Ruby的Guard库一样。
使用guard + minitest,我得到的行为是,如果我保存像my_class_test.rb
这样的文件,则执行enter
,如果我在cli中点击long newLong = Longs.fromByteArray(oldLongByteArray);
int newInt = Ints.fromByteArray(oldIntByteArray);
,则会运行所有测试。< / p>
到目前为止,使用pytest我还没有找到一种方法来只运行与上次触摸的文件相对应的测试文件,从而避免等待整个测试套件运行,直到我获得当前文件合格。
你怎么会去pythonistas呢?
谢谢!
答案 0 :(得分:14)
一种可能性是将pytest-testmon与pytest-watch一起使用。
它使用coverage.py来跟踪哪个测试涉及哪行代码,并且一旦更改了一行代码,它就会重新运行以某种方式执行该行的所有测试。
答案 1 :(得分:2)
要添加到上述 @The Compiler 的答案中,您可以使用pytest-watch的--runner
选项让pytest-testmon和pytest-watch一起玩:
ptw --runner "pytest --testmon"
答案 2 :(得分:2)
如果您使用git
作为版本控制,则可以考虑使用pytest-picked
。根据文档,这是一个插件:
运行与未暂存文件或当前分支相关的测试
演示
pytest --picked
答案 3 :(得分:1)
我得到的最快设置是将@lmiguelvargasf @BenR和@TheCompiler答案结合到此
ptw --runner "pytest --picked --testmon"
您首先要安装它们
pip3 install pytest-picked pytest-testmon pytest-watch