所有pytest文档都指定py.test file_name
是运行pytest测试用例的标准方法。但是我使用左窗格中的Python脚本和右窗格中的Python解释器在Emacs中开发。从测试脚本中运行pytest测试用例
我的工作流程是,我修改了Python脚本,CTRL-C C它(使更新后的变化发送给REPL),并移动到REPL(CTRL-O),所以测试更新的代码。如果我可以对左侧的测试用例进行更改,移动到右侧的REPL屏幕并执行更新的测试用例,那将会很好。
有没有办法从REPL或脚本内运行pytest测试用例,而不是产生shell并运行pytest命令?
编辑:顺便说一句,我也尝试利用pytest的main
函数和调用它的脚本,但对于一些有趣的原因,更改不会拿起除非我杀老REPL并开始一个新的。这不会发生在其他Python脚本中,所以我相信这与pytest有关。下面是代码:
def test_add():
assert myadd(1, 2) == 3
if __name__ == '__main__':
pytest.main()
我相信pytest.main()是不是考验你有REPL里面有什么,因为它将启动定期py.test亚军,它试图从预期的测试负载测试文件夹,并遵循任何命名约定 –
@ Conrad.Dean:我认为这不是关于REPL。我感觉pytest会在运行测试之前为我的脚本提供最新的代码。但是,似乎一旦加载测试代码就不会重新加载,而不考虑对测试脚本所做的更改。真奇怪... – sasuke