unittest的简单运用
test fixture:
Test Fixture用在测试方法前,或者测试方法后,主要功能是提供一些测试需要用的装置,这些装置可以是数据,可以是环境配置也可以是一个运行前状态。简单说,就是数据初始化,以及数据销毁,使用内置的setup/teardown/setUpClass/tradDownClass。
test case:
测试用例是测试的最小单位。它检查对一组特定输入的特定响应。 unittest提供了一个基类, TestCase可用于创建新的测试用例。即创建对应你测试用例的脚本。
test suite:
一个测试套件是测试用例,测试套件,或两者的集合。它用于汇总应一起执行的测试。即测试套件之间可以嵌套,也可以只有一个测试套件,在套件中包含测试用例。
test runner :
测试运行是编排的测试的执行,并提供结果给用户的部件。也就是相当于,框架的入口,他会收集脚本,执行脚本,输出结果。
参考链接:https://www.jianshu.com/nb/47938731
一、直接使用TestCase
注意所有测试方法都需要以test开头
import unittest class Test1(unittest.TestCase): @classmethod def setUpClass(self): print("execute setUpClass") @classmethod def tearDownClass(self): print("execute tearDownClass") def setUp(self): print("execute setUp") def tearDown(self): print("execute tearDown") def test_one(self): print('execute test_one') self.assertTrue('FOO'.isupper()) def test_two(self): print('execute test_two') if __name__ == '__main__': unittest.main()
二、使用TestSuite
直接写TestCase执行时是按字母排序的顺序执行的,如果要设定测试用例的执行先后顺序则需要将TestCase封装到TestSuite
import unittest class Test2(unittest.TestCase): @classmethod def setUpClass(self): print("execute setUpClass") @classmethod def tearDownClass(self): print("execute tearDownClass") def setUp(self): print("execute setUp") def tearDown(self): print("execute tearDown") def test_one(self): print('execute test_one') self.assertTrue('FOO'.isupper()) def test_two(self): print('execute test_two') if __name__ == '__main__': suite = unittest.TestSuite() # Test2是要测试的类名,test_two是要执行的测试方法 suite.addTest(Test2("test_two")) suite.addTest(Test2("test_one")) runner = unittest.TextTestRunner() runner.run(suite)