美文网首页
pytestreport导出测试报告html文本

pytestreport导出测试报告html文本

作者: 深吸一口气 | 来源:发表于2021-06-22 10:53 被阅读0次

    本文基于pytestreport 0.2.1

    PytestReport 一个由 HTMLTestRunner 项目为灵感,并基于 HTMLTestRunner 进行二次开发的一个项目。主要在 API 调用、报告样式、扩展性等方面进行了增强。

    使用示例

    import unittest
    from pytestreport import TestRunner
    
    class MyTest(unittest.TestCase):
        def testTrue(self):
            self.assertTrue(True)
    
    if __name__ == '__main__':
        suite = unittest.TestSuite()
        suite.addTests(unittest.TestLoader().loadTestsFromTestCase(MyTest))
    
        with open(r'/path/to/report.html', 'wb') as fp:
            runner = TestRunner(fp, title='测试标题', description='测试描述', verbosity=2)
            runner.run(suite)
    

    主要修改部分

    pytestreport.TestRunner.run方法

    def run(self, test):
        """Run the given test case or test suite."""
        result = _TestResult(self.verbosity)
        test(result)
    
        self.duration = datetime.datetime.now() - self.start_time
        data = self.generate_data(result)
        html = self.generate_report(data)
    
        print(f'\nTime Elapsed: {self.duration}', file=sys.stderr)
        result.pytestreport_data = data
        result.pytestreport_html = html
    
        return result
    

    将这个方法的返回值修改为return html,直接返回测试报告的html文本

    pytestreport.TestRunner.generate_report方法

    def generate_report(self, data):
        html_template = self.get_html_template()
        output = html_template.render(**data)
    
        self.stream.write(output.encode('utf-8'))
        return output
    

    将这个方法的self.stream.write(output.encode('utf-8'))注释,不将测试报告写入到文件

    修改后使用方法

    import unittest
    from pytestreport import TestRunner
    
    class MyTest(unittest.TestCase):
        def testTrue(self):
            self.assertTrue(True)
    
    if __name__ == '__main__':
        suite = unittest.TestSuite()
        suite.addTests(unittest.TestLoader().loadTestsFromTestCase(MyTest))
    
        runner = TestRunner(title='测试标题', description='测试描述', verbosity=2)
        html = runner.run(suite)
    

    相关文章

      网友评论

          本文标题:pytestreport导出测试报告html文本

          本文链接:https://www.haomeiwen.com/subject/urvpyltx.html