TestCase 的几个特殊方法:
setUp():测试方法之前运行,测试前的初始化;
tearDown():测试结束后运行,测试后的清理工作;
setUpClass():所以测试方法运行前运行 ,单元测试的前期准备,必须使用@classmethod 装饰器进行修饰,setup()之前运行。整个测试只执行一次。
tearDownClass():所以测试方法执行结束后运行,单元测试的清理工作,必须使用@classmethod 装饰器进行修饰,tearDown()之后运行,整个测试只执行一次。
1.加上测试集合可以批量运行同一个文件.py下的多个测试用例: Testsuit
if__name__ == '__main__' :
testCase1 = unittest.TestLoad().loadTestsFromTestCase(测试类名字1)
testCase2 = unittest.TestLoad().loadTestsFromTestCase(测试类名字2)
suit = unittest.Testsuit([testCase1,testCase2 ])
unittest.TextTestRunner(verbosity=2).run(suit)
备注:verbosity<=0;输出的结果不提示执行成功的用例数目;
verbosity =1,输出结果仅仅以点(.)表示执行成功的用例数目;
verbosity >=2,输出每个用例的执行的详细信息;
TestRunner.run() 返回一个TestResult实力对象,其存放着所有测试用例的执行过程的信息,可以通过dir()方法查看。
.TextTestRunner.run() 以文本的方式
2. 按照特定的顺序执行测试用例
unittest.main()是以所有方法名的字符串ASCII排序执行,可以通过把测试用例添加到测试容器里执行;
if __name__ = '__main__'
suit =unittest.TestSuit()
suit .addTest(类名("方法"))
suit .addTest(Mytest("test_add"))
suit .addTest(Mytest("test_div"))
runner= unittest.TextTestRunner()
runner.run(suit)
3.忽略莫个测试方法 @unittest.skip()
在测试方法前之前 执行@unittest.skip(“Skipng”)无条件的忽略
@unittest.skip(A>8,"条件不满足"):如果A >8,则忽略;
4.命令行模式执行测试用例
python -m unittest test_model1 test_model2
python -m unittest test_model.Testclass
python -m unittest test_model.Testclass.test_method
5.批量执行测试模块
程序文件执行:
if __name__ = '__main__'
testsuit= unittest.TestLoad().discover('.') #加载当前目录下的有效的测试模块,“.”表示当前的目录;文件名字以test 开头
unittest.TextTestRunner(verbosity=2).run(testsuit)
命令行执行:
python -m unittest discover #目录需要切换到存放脚本的目录下;
discover 的一些参数:
-v :输出详细的信息;
-s:发现脚本的目录;
-p:匹配莫个测试文件:python -m unittest discover -p "test * .py"
-t:工程的跟目录下的搜索可以执行的测试脚本:例如:python -m unittest discover -t D:\wew\ewe
6.使用HTML TestRunner 生成HTML的测试报告
filename="d:\\ly.html"
fp =file(filename,'wb')
runner = HTML TestRunner .HTML TestRunner (stream=fp,title='Report title',description =‘Report_description’)
runner.run(suit)