我想在運行時獲取測試名稱和測試結果。 我在我的腳本中有setup和tearDown方法。 和在安裝程序的方法我需要得到測試名稱和tearDown我需要得到測試結果和測試執行時間。如何在pytest運行時獲取測試名稱和測試結果
2
A
回答
0
unittest.TestCase.id()這將返回完整的Details,包括類名稱,方法名稱。 由此我們可以提取測試方法的名稱。 可以通過檢查執行測試是否存在任何異常來獲得結果。 如果測試失敗,那麼如果sys.exc_info()返回None,則測試通過,否則測試將失敗。
7
昨天我面臨着同樣的問題,我解決它:-)
官方手冊對我來說是有幫助的: http://pytest.org/latest/plugins.html#hook-specification-and-validation
魔術這種認識,即使用特殊鉤pytest。 它的鉤子是「pytest_runtest_protocol」 - 爲給定的測試項目實現runtest_setup/call/teardown協議,包括捕獲異常和調用報告鉤子。
當任何測試完成時(例如啓動或拆卸或測試),此鉤子會被調用。
我旁邊的樹在我的測試目錄:
./rest/
├── conftest.py
├── __init__.py
└── test_rest_author.py
在test_rest_author.py文件我已經啓動,拆卸和test_tc15功能,但我想僅顯示test_tc15 FUNC結果和名稱。
在conftest.py文件:(警告:創建具有相同名稱的文件,它的特殊文件pytest,以瞭解更多信息請閱讀:http://pytest.org/latest/plugins.html#conftest-py-local-per-directory-plugins)
import pytest
from _pytest.runner import runtestprotocol
def pytest_runtest_protocol(item, nextitem):
reports = runtestprotocol(item, nextitem=nextitem)
for report in reports:
if report.when == 'call':
print '\n%s --- %s' % (item.name, report.outcome)
return True
,如果你運行你的腳本,你可以看到結果和測試的名稱:
$ py.test ./rest/test_rest_author.py
====== test session starts ======
/test_rest_author.py::TestREST::test_tc15 PASSED
test_tc15 --- passed
======== 1 passed in 1.47 seconds =======
利潤:-)
相關問題
- 1. pybuilder和pytest:運行測試
- 2. 如何從測試運行器獲取JUnit測試結果?
- 3. pytest運行測試並行
- 4. 在運行時處理pytest測試結果
- 5. 如何在使用pytest進行測試後顯示測試名*?
- 6. junit 4.10:如何在運行測試時獲得測試類的名稱
- 7. 獲取當前正在執行的測試測試的名稱?
- 8. Python和pytest測試
- 9. 如何在運行pytest測試時隨意執行ipdb.set_trace()
- 10. 獲取測試結果
- 11. Pytest:在測試結束時運行一個函數
- 12. 如何在運行時使用測試ng來設置測試用例名稱?
- 13. 如何從單元測試中的測試套件獲取當前運行的測試用例名稱
- 14. 如何在運行時在Visual Studio Test Framework中獲取測試用例名稱?
- 15. 如何在運行時獲取JUnit 4中的測試用例名稱?
- 16. 如何在運行ruby測試時獲取測試程序的名稱以及點號
- 17. 如何在調試時運行測試
- 18. 調試和單元測試運行時GetHashCode不同的結果
- 19. 從測試腳本中運行pytest測試用例
- 20. 獲取在Xunit中運行測試的名稱
- 21. 在測試用例中獲取BOOST TEST測試套件名稱
- 22. 如何獲得pytest運行所有功能測試
- 23. pytest進口運行測試兩次
- 24. Pytest:取消選擇測試
- 25. 獲取pytest的測試腳本
- 26. 獲取UrlGenerationErrorr試圖運行測試
- 27. 如何在並行運行測試時管理測試數據
- 28. 如何從SOAP UI TestSuite Teardown Script獲取測試運行斷言結果(狀態和名稱)?
- 29. 在嘗試運行測試時獲取「無法附加測試記者」
- 30. 測試方法不在AWS Farm上運行的appium測試結果中運行