我想在运行时获取测试名称和测试结果。 我在我的脚本中有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测试结果中运行