先前博客有介绍pytest测试框架的安装及使用,现在来聊聊pytest可以生成哪些测试报告
#!/usr/bin/python# -*- coding: UTF-8 -*-"""@author:chenshifeng@file:test_report.py@time:2021/01/27"""class TestReport: def test_one(self): x = "shifeng" assert "feng" in x def test_two(self): x = "hello" assert x == "hi"
?
执行命令:
pytest test_report.py --resultlog=./resultlog.txt
指定当前路径下生成resultlog.txt文件,打开文件,内容如下:
. reportdemo/test_report.py::TestReport::test_oneF reportdemo/test_report.py::TestReport::test_two self = <test_report.TestReport object at 0x7fd9c0a3eac0> def test_two(self): x = "hello" > assert x == "hi" E AssertionError: assert 'hello' == 'hi' E - hi E + hello test_report.py:16: AssertionError
执行命令:
pytest test_report.py --junitxml=./resultlog.xml
同样指定在当前目录下生成resultlog.xml文件,打开文件内容如下:
<?xml version="1.0" encoding="utf-8"?><testsuites> <testsuite errors="0" failures="1" hostname="chenshifengdeMacBook-Pro.local" name="pytest" skipped="0" tests="2" time="0.072" timestamp="2021-01-27T23:56:58.204464"> <testcase classname="reportdemo.test_report.TestReport" file="reportdemo/test_report.py" line="9" name="test_one" time="0.001"></testcase> <testcase classname="reportdemo.test_report.TestReport" file="reportdemo/test_report.py" line="13" name="test_two" time="0.002"> <failure message="AssertionError: assert 'hello' == 'hi' - hi + hello">self = <test_report.TestReport object at 0x7fa152b97790> def test_two(self): x = "hello" > assert x == "hi" E AssertionError: assert 'hello' == 'hi' E - hi E + hello test_report.py:16: AssertionError </failure> </testcase> </testsuite></testsuites>
?
创建这样的XML文件有有什么用? 主要是为了方便Jenkin或其它的持续集成工具读取。
执行命令:
pytest test_report.py --pastebin=all
复制打印结果最后生成的session-log测试报告链接到浏览器:
当然,你也可以只选择展示faile的测试用例
pytest test_class.py --pastebin=failed
?
通过pip安装pytest-html
pip install pytest-html
在代码文件的当前目录下执行命令
pytest test_report.py --html=./report.html
指定在当前目录下生成report.html文件,打开测试文件:
?
感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
?
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取?
?