unnittest 单元测试

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)

 

posted @ 2019-05-20 15:45  meiHebw  阅读(952)  评论(0编辑  收藏  举报