所有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