我想在運行時獲取測試名稱和測試結果。 我在我的腳本中有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. 如何從測試運行器獲取JUnit測試結果?
- 2. pytest運行測試並行
- 3. 在運行時處理pytest測試結果
- 4. 如何在使用pytest進行測試後顯示測試名*?
- 5. junit 4.10:如何在運行測試時獲得測試類的名稱
- 6. Python和pytest測試
- 7. 如何在運行pytest測試時隨意執行ipdb.set_trace()
- 8. 如何在運行時使用測試ng來設置測試用例名稱?
- 9. 如何從單元測試中的測試套件獲取當前運行的測試用例名稱
- 10. 如何在運行時在Visual Studio Test Framework中獲取測試用例名稱?
- 11. 如何在運行時獲取JUnit 4中的測試用例名稱?
- 12. 如何在運行ruby測試時獲取測試程序的名稱以及點號
- 13. 從測試腳本中運行pytest測試用例
- 14. 調試和單元測試運行時GetHashCode不同的結果
- 15. 獲取在Xunit中運行測試的名稱
- 16. 在測試用例中獲取BOOST TEST測試套件名稱
- 17. pytest進口運行測試兩次
- 18. Pytest:取消選擇測試
- 19. 獲取UrlGenerationErrorr試圖運行測試
- 20. 如何在並行運行測試時管理測試數據
- 21. 如何從SOAP UI TestSuite Teardown Script獲取測試運行斷言結果(狀態和名稱)?
- 22. 在嘗試運行測試時獲取「無法附加測試記者」
- 23. pytest超時 - 失敗測試,而不是殺死整個測試運行
- 24. QTest獲得測試名稱
- 25. Jenkins測試結果趨勢圖爲空,但測試運行
- 26. 如何獲得動態測試名稱
- 27. 在TFS 2010中運行NUnit測試,測試運行但獲取錯誤發佈結果
- 28. 將測試結果添加到VSTS中的測試運行(測試用例)
- 29. 如何獲取spock當前正在運行的測試的名稱?
- 30. 如何通過JavaScript回調在C#中運行QUnit測試並獲取測試結果?