在之前的测试中呢,我们把测试用例执行完毕后,但是没有对测试用例执行结果进行收集展示,而是直接在执行后打印看的,我们想要收集起来,做个展示,如何收集这些测试结果并且展示呢,本文带你解密。
正文
如何结合unittest产生漂亮的测试报告呢,在之前的分享中,我们有分享过。unittest系统(七)产生漂亮的测试报告。但是仔细看看里面的代码,仿佛这里面的是我们去增加错误重试之前的还能适配,增加重试后,就不能直接用了,那么我们应该怎么做呢,其实就是把我们做的重试那些,改进到我们的测试报告产生的脚本中。我们用BSTestRunner为例改造吧。下载地址
https://github.com/easonhan007/HTMLTestRunner
那么我们看下源码。
我们可以看到,这里的_TestResult就是继承了TestResult进行了一些修改,那么我们是不是可以认为,我们这里的改造直接集成我们之前写的MyResult即可呢,我们尝试下,我们直接改成
class _TestResult(MyResult):
# note: _TestResult is a pure representation of results.
# It lacks the output and reporting ability compares to unittest._TextTestResult.
def __init__(self, verbosity=1, trynum=2):
TestResult.__init__(self)
super().__init__(verbosity, trynum)
然后不做任何的处理,我们试下,看能否直接实现我们的需求。我们改造下run.py,改造的方法如下
def runnerCaseApp(devices):
report = "test.html"
openone = open(report, 'w+')
'''利用unittest的testsuite来组织测试用例'''
besautiful = BSTestRunner(title="报告",
description="测试报告",stream=openone)
test_suit = unittest.TestSuite()
test_suit.addTest(Parmer.parametrize(testcase_klass=testCase, parame=devices)) # 扩展的其他的测试用例均这样添加
besautiful.run(test_suit)
改造完毕我们执行下。
那么我们执行下,看下最后的测试结果
这样我们就是完成了。我们提交到远程仓库代码。
https://gitee.com/liwanlei/appiumdemo
后记
欢迎关注雷子说测试开发,后续将会持续为大家分享更多的技术知识
如果你有问题可以留言或者加我微信。2021,一起牛转钱坤,一起牛逼。