本想尝试顺序调用测试用例,遇到了下面一些问题,最后解决了 记录一下
问题一 报AttributeError:module test_01_c has no attribute ‘test_01_c(self)’
解决办法: 将import test_01_c 改为 from test_01_c import test_01_c。这个还是因为我初学python,以为像java那样import class就可以了
问题二:测试报告里的测试用例统计为0
解决方法,把加载测试用例的方法从方法二改成方法三就对了 这里面的原因我还没有研究…
方法二
suite.addTest(test_01_c.test_01_c)
suite.addTest(test_02_b.test_02_b)
suite.addTest(test_03_a.test_03_a)
方法三
#suite.addTest(test_01_c(“test_01_c”))
#suite.addTest(test_02_b(“test_02_b”))
#suite.addTest(test_03_a(“test_03_a”))
另 下面的代码试验了顺序执行测试用例的5种方法
import unittest
class test_01_c(unittest.TestCase):
def test_01_c(self):
print(“11111111111”)
import unittest
class test_02_b(unittest.TestCase):
def test_02_b(self):
print(“22222222222”)
import unittest
class test_03_a(unittest.TestCase):
def test_03_a(self):
print(“333333333333”)
import os, time, unittest
from test_01_c import test_01_c
from test_02_b import test_02_b
from test_03_a import test_03_a
import HTMLTestRunner
report_path = os.getcwd() # 设置保存报告的路径,这儿设置的是与执行文件在同一个目录下
title = u"自己的第一个自动化测试" # 标题
report_abspath = os.path.join(report_path, title + “.html”) # 设置报告存放和命名
if name == “main”:
fp = open(report_abspath, “wb”)
suite = unittest.TestSuite()
#顺序加载测试用例方法一
#tests=[test_01_c.test_01_c,test_02_b.test_02_b,test_03_a.test_03_a]
#suite.addTests(tests)
#顺序加载测试用例方法二
suite.addTest(test_01_c.test_01_c)
suite.addTest(test_02_b.test_02_b)
suite.addTest(test_03_a.test_03_a)
#顺序加载测试用例方法三
#suite.addTest(test_01_c(“test_01_c”))
#suite.addTest(test_02_b(“test_02_b”))
#suite.addTest(test_03_a(“test_03_a”))
#顺序加载测试用例方法四
#suite.addTests(unittest.TestLoader().loadTestsFromName(‘test_01_c.test_01_c’))
#suite.addTests(unittest.TestLoader().loadTestsFromName(‘test_02_b.test_02_b’))
#suite.addTests(unittest.TestLoader().loadTestsFromName(‘test_03_a.test_03_a’))
#顺序加载测试用例方法五
#suite.addTests(unittest.TestLoader().loadTestsFromNames([‘test_01_c.test_01_c’,‘test_02_b.test_02_b’,‘test_03_a.test_03_a’]))
# 执行测试方法一
runner = unittest.TextTestRunner()
runner = HTMLTestRunner.HTMLTestRunner(stream=fp,title=title + ‘:’,verbosity=2) runner.run(suite)
# 执行测试方法二
# unittest.main()
fp.close()