我正在使用pytest。我在一個目錄中有兩個文件。在其中一個文件中,有一個長時間運行的測試用例會生成一些輸出。在另一個文件中有一個讀取該輸出的測試用例。我怎樣才能確保兩個測試用例的正確執行順序?除了按照正確的順序將測試用例放在同一個文件中,還有其他的選擇嗎?pytest中的測試用例執行順序
回答
一般來說,您可以使用其well-specified hooks配置pytest的基本任何部分的行爲。
在你的情況下,你需要「pytest_collection_modifyitems」鉤子,它可以讓你重新定購收集的測試。
這就是說,它看起來像命令你的測試應該更容易 - 畢竟這是Python!所以我寫了一個訂購測試的插件。看看docs或從pypi安裝它。現在我建議使用@ pytest.mark.first和@ pytest.mark.second,或者@ pytest.mark.order#標記之一,但我對一些更有用的API有一些想法。建議表示歡迎:)
嘿。感謝您創建此插件。你可以修改它,以便它只是提取尾隨數字作爲順序。例如,如果我說@ pytest.mark.custom1,那麼1應該是順序。這將非常有幫助! –
我可以試試。我認爲v0.2具有「訂單」標記的這種行爲,而不是任意的標記。你可以把它寫成pytest-ordering的github頁面上的一個功能請求嗎? https://github.com/ftobia/pytest-ordering –
鉤子鏈接應該去:http://pytest.org/latest/writing_plugins.html#well-specified-hooks –
也許你可以考慮使用dependency pytest插件,在那裏你可以很容易地設置測試的依賴關係:
@pytest.mark.dependency()
def test_long():
pass
@pytest.mark.dependency(depends=['test_long'])
def test_short():
pass
這樣,如果test_long
是成功和力的執行順序test_short
將只執行以及。
以上不適用於訂單排序。例如:如果您翻轉訂單。即長期依靠短。在這種情況下,long會被跳過。 – peaxol
還有一個插件pytest-ordering似乎符合您的要求。
Frank T.的回答已經提到這個插件,並在此答案前3年發佈。 – Ave
恩,但他沒有提到這個名字。這就是爲什麼我完全錯過了這一點。 –
- 1. pytest參數化執行順序的多次測試
- 2. mxunit測試用例中函數執行的順序
- 3. Selenium Webdriver測試用例 - 測試用例沒有按順序執行
- 4. 執行pytest fixtures的順序是?
- 5. 用pytest執行幾次測試
- 6. 從測試腳本中運行pytest測試用例
- 7. 以預先定義的順序執行測試用例
- 8. Android Robotium - 如何管理測試用例的執行順序?
- 9. pytest參數重複測試的執行順序似乎是錯誤的
- 10. 在nunit中按順序執行測試
- 11. JUnit是否按順序執行測試用例?
- 12. 量角器測試的執行順序
- 13. Junit執行測試方法的順序
- 14. 執行僅測試使用pytest不執行父腳本
- 15. pytest argparse測試用例不起作用
- 16. Django測試執行順序和表
- 17. ScalaTest:瞭解測試執行順序
- 18. Grails Geb測試執行順序
- 19. @測試註釋執行字母順序
- 20. pytest運行測試並行
- 21. pytest如何計數測試用例?
- 22. JUnit測試統計和測試執行的指定順序
- 23. pytest參數化 - 從CSV中將行作爲測試用例
- 24. pybuilder和pytest:運行測試
- 25. 測試用例出的順序JUnit測試報告用TestNG時
- 26. 以哪種順序執行測試NG測試?
- 27. 測試用例按順序運行而不是平行運行
- 28. 在量角器中按順序運行測試用例
- 29. 使用Selenium和NUnit進行UI自動化測試測試執行順序
- 30. Pytest終結 - 序執行
一般來說,讓測試用例相互依賴並不是一個好主意。如果你需要在2個測試用例中使用相同的數據,爲什麼不把它添加到'setup'部分? – Brad
我知道。我也不喜歡它,但現在我需要它。 – Kocka
我不想將它添加到設置部分,因爲它需要大約15-20分鐘。 – Kocka