我最近开始使用pytest,我使用pytest.main()来运行测试。然而,似乎pytest缓存了测试。对模块或测试所做的任何更改都将被忽略。我无法从命令行运行pytest所以pytest.main()是我唯一的选择,这是因为在我的ipad上编写python。
我已经广泛搜索了这个,并且能够找到一个类似的问题,建议从命令行运行pytest。任何帮助将不胜感激。
谢谢,
答案 0 :(得分:2)
Pytest不会缓存任何内容。每个Python解释器实例只读取一次模块(文件)。
内置reload
,但it almost never does what you hope it will do。
所以,如果你正在运行
import pytest
...
while True:
import my_nifty_app
my_nifty_app.be_nifty()
pytest.main()
my_nifty_app.py
将被读取一次,即使它在磁盘上发生变化也只会被读取一次。你真正需要的是像
exit_code = pytest.main()
sys.exit(exit_code)
将结束解释器的实例,这是确保重新读取源文件的唯一方法。