zoukankan      html  css  js  c++  java
  • Python单元测试框架pytest常用测试报告类型

    先前博客有介绍pytest测试框架的安装及使用,现在来聊聊pytest可以生成哪些测试报告

    1.allure测试报告

    关于allure报告参见先前的一篇博文:https://www.cnblogs.com/feng0815/p/13792188.html ,这里不再赘述

    2.生成resultlog文件

    #!/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_one
    F 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
    

    3.生成JunitXML文件

    执行命令:

    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 &apos;hello&apos; == &apos;hi&apos;
      - hi
      + hello">self = &lt;test_report.TestReport object at 0x7fa152b97790&gt;
    
                    def test_two(self):
                    x = &quot;hello&quot;
                    &gt; assert x == &quot;hi&quot;
                    E AssertionError: assert &apos;hello&apos; == &apos;hi&apos;
                    E - hi
                    E + hello
    
                    test_report.py:16: AssertionError
                </failure>
            </testcase>
        </testsuite>
    </testsuites>
    

    创建这样的XML文件有有什么用? 主要是为了方便Jenkin或其它的持续集成工具读取。

    4.生成测试用例的URL

    执行命令:

    pytest test_report.py  --pastebin=all
    


    复制打印结果最后生成的session-log测试报告链接到浏览器:https://bpa.st/UW2IG


    当然,你也可以只选择展示faile的测试用例

     pytest test_class.py  --pastebin=failed
    

    5.生成html测试报告

    通过pip安装pytest-html

     pip install pytest-html  
    

    在代码文件的当前目录下执行命令

    pytest test_report.py --html=./report.html
    


    指定在当前目录下生成report.html文件,打开测试文件:

    如果您觉得本篇文章还不错,欢迎点赞,转发分享(转发请注明出处),感谢~~
  • 相关阅读:
    Enterprise Library 2.0 技巧(4):如何用编程的方法来配置Logging Application Block
    Castle IOC容器实践之EnterpriseLibrary Configuration Facility
    Castle开发系列文章上了Castle的官方网站
    DataGridView也泛型?——一个不错的DataGridView控件
    Enterprise Library for .NET Framework 3.0 what would you like to see?
    设计是否可以更合理一点?——关于ORM中业务实体的讨论
    Enterprise Library 2.0 技巧(2):如何将配置信息保存到数据库中
    关于Castle IOC容器自动装配的问题
    数据库重构与数据库单元测试
    BLINQ初体验
  • 原文地址:https://www.cnblogs.com/feng0815/p/14337690.html
Copyright © 2011-2022 走看看