Appium Appium+Python3+iOS,用 unittest 之后运行,不能生成 HTMLTestRunner 报告,大家这个问题是怎么解决的呢

我喜欢的K17 · 2019年08月13日 · 最后由 joy888 回复于 2019年09月02日 · 1432 次阅读

if name == 'main':
search_suite = unittest.TestSuite()
search_suite.addTest(TestLable('test_cancel'))
now = time.strftime("%Y-%m-%d %H_%M_%S", time.localtime())
filename = "/Users/liyaoyao/Documents/iOSAppiumTest/iOSTest/TestReport/" + now + "_test.html"
fw = open(filename, 'wb')
runner = HTMLTestRunner.HTMLTestRunner(stream=fw, title='Testing', description=u'用例执行情况')
runner.run(search_suite)
fw.close()

有没有大神帮忙看一下,分享一下这个问题是怎么解决的呢?

共收到 7 条回复 时间 点赞

你调用顺序错了吧

刘旭 回复

哪个顺序错了,大佬指点一下

虽然不知道你错在哪里,我下面的代码是可以生成的,你可以参考一下改改试试

def get_suit(i):
    a=CaseTest()
    suite=unittest.TestSuite()
    suite.addTest(CaseTest("case_01"))
    #unittest.TextTestRunner().run(suite)
    html_file='/Users/Desktop/Appiumpython/report/report'+str(i)+'.html'
    fp=open(html_file,"wb")
    HTMLTestRunner.HTMLTestRunner(fp).run(suite)
P_Oliver 回复

是新建一个类定义这个方法再调用吗?

5楼 已删除

这个无所谓

  • 试了试可以生成
  • 怀疑没找到用例就直接报错了,还没来得及运行到下面

以下可以执行

import time
import unittest
import HTMLTestRunner

class TestLable(unittest.TestCase):
    def test_cancel(self):
        self.assert_equal(1,2)

if __name__=='__main__':
    search_suite = unittest.TestSuite()
    search_suite.addTest(TestLable('test_cancel'))
    now = time.strftime("%Y-%m-%d %H_%M_%S", time.localtime())
    filename = "./" + now+"_test.html"
    fw = open(filename, 'wb')
    runner = HTMLTestRunner.HTMLTestRunner(stream=fw, title='Testing', description=u'用例执行情况')
    runner.run(search_suite)
    fw.close()

你运行的是 pytest,所以它找不到 HTMLTestRunner,在命令运行就好啊

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册