签约做网站模板,河南省建设监理协会新网站,知名设计品牌有哪些,个人做网站好吗目录
1#xff1a;addTest()
2、addTests()
3#xff1a;discover() 上一篇说了Unittest的一个基本的执行顺序#xff0c;那如果我们想要调整用例的执行先后顺序的话#xff0c;可以用TestSuite()和TextTestRunner()了#xff0c;可以这么理解#xff0c;比如一个班级…目录
1addTest()
2、addTests()
3discover() 上一篇说了Unittest的一个基本的执行顺序那如果我们想要调整用例的执行先后顺序的话可以用TestSuite()和TextTestRunner()了可以这么理解比如一个班级里有50个学生50条用例其中有10个学生获得了评优10条需要执行然后需要单独叫出来领奖然后这10个学生领奖的时候需要按照一定顺序进行排队上台进行用例的先后顺序排列TestSunit()的作用就可以把这10个学生叫出来并且排好队然后这会该上台了这时候就需要搭配上TextTestRunner()来使用了可以把TextTestRunner()当成老师你们用TestSunite()排好队了然后听TextTestRunner()指挥来按顺序上台按之前排好的顺序进行运行。 下面重点说下怎么对学生进行排队怎么添加需要执行的用例。
1addTest() 添加需要执行用例时可以使用addTest()的方式一个一个的去添加具体用法在addTest()里写上类和对应用例即可addTest(类(方法)) 。
import unittest #导入unittest的框架
class Atmunit_case(unittest.TestCase): #定义一个class类的名称并且继承unittest的框架def setUp(self):print(----用例开始了-----)def test_111(self): #只能以小写test开头一个def就可以理解成一个测试用例但是这里的命名必须是以test开头这个会区分大小写必须是全部小写的testprint(用例1) #用例内容def test_222(self): #定义第二个测试用例不是以test开头这个不会被执行print(用例2) #用例内容def ddd(self): #写一个ddd的方法看会不会运行print(11111)def tearDown(self): #结束的执行print(-------执行结束了-----)if __name__ __main__: #运行unittest框架suite unittest.TestSuite() #把TestSuite实例化suite.addTest(Atmunit_case(test_222)) #调整执行顺序优先执行test_222用例括号里需要填写类名class后面的名字和对应的函数名def后面的名字suite.addTest(Atmunit_case(test_111)) #然后执行test_11用例suite.addTest(Atmunit_case(ddd)) #写上ddd看会不会执行结果是会运行的但是这样不太符合unittest的规范最好少出现这样的写法runner unittest.TextTestRunner() #实例化TextTestRunner()runner.run(suite) #执行上述用例
执行结果为
----用例开始了----- 用例2 -------执行结束了----- ----用例开始了----- 用例1 -------执行结束了----- ----用例开始了----- 11111 -------执行结束了-----
执行截图 2、addTests() 下面说下addTests()的方法用法和addTest()没啥太大区别这个可以把需要执行的用例提前定义下test (类(方法1),类(方法2),类(方法3))然后把test传到addTests()里即可。
import unittest #导入unittest的框架
class Atmunit_case(unittest.TestCase): #定义一个class类的名称并且继承unittest的框架def setUp(self):print(----用例开始了-----)def test_111(self): #只能以小写test开头一个def就可以理解成一个测试用例但是这里的命名必须是以test开头这个会区分大小写必须是全部小写的testprint(用例1) #用例内容def test_222(self): #定义第二个测试用例不是以test开头这个不会被执行print(用例2) #用例内容def ddd(self): #写一个ddd的方法看会不会运行print(11111)def tearDown(self): #结束的执行print(-------执行结束了-----)if __name__ __main__: #运行unittest框架suite unittest.TestSuite() #把TestSuite实例化testcase (Atmunit_case(test_222),Atmunit_case(test_111),Atmunit_case(ddd)) #把用例传入到testcase中suite.addTests(testcase) #使用addTests()的方法批量添加用例runner unittest.TextTestRunner() #实例化TextTestRunner()runner.run(suite) #执行上述用例执行结果为
----用例开始了----- 用例2 -------执行结束了----- ----用例开始了----- 用例1 -------执行结束了----- ----用例开始了----- 11111 -------执行结束了-----
执行截图; 3discover() 当有多个测试文件需要执行时也可以选择discover()的方式具体用法为
unittest.defaultTestLoader.discover(start_dir.,patterntest_case*.py,top_level_dirNone)#start_dir 表示要搜索的文件路径通常设置为 . 表示为当前目录pattern 表示要搜索的文件的名称格式*为通配符表示任意内容这个的意思是以test_case开头然后中间有任意内容最后以.py结尾的文件top_level_dir 表示是否为项目的顶层目录用于去寻找相对的导入路径一般默认即可或者可以不写 比如截图中的目录我们有test_case_01、test_case_02、test_case_03、test11_case_04这几个目录这几个里面分别对应不同的用例。
test_case_01.py里面的内容
import unittest #导入unittest的框架
class test_case_01(unittest.TestCase): #定义一个class类的名称并且继承unittest的框架def test_101(self): #定义test_101的测试方法print(test_case_101)def test_102(self): #定义test_102的测试方法print(test_case_102) test_case_02.py里面的内容
import unittest #导入unittest的框架
class test_case_02(unittest.TestCase): #定义一个class类的名称并且继承unittest的框架def test_201(self): #定义test_201的测试方法print(test_case_201)def test_202(self): #定义test_202的测试方法print(test_case_202) test_case_03.py里面的内容
import unittest #导入unittest的框架
class test_case_03(unittest.TestCase): #定义一个class类的名称并且继承unittest的框架def test_301(self): #定义test_301的测试方法print(test_case_301)def test_302(self): #定义test_302的测试方法print(test_case_302) test11_case_04.py里面的内容
import unittest #导入unittest的框架
class test11_case_04(unittest.TestCase): #定义一个class类的名称并且继承unittest的框架def test_401(self): #定义test_401的测试方法print(test_case_401)def test_402(self): #定义test_402的测试方法print(test_case_402)testrunner.py里面的内容
import unittest#discover unittest.defaultTestLoader.discover(start_dir.,patterntest_case*.py,top_level_dirNone)#设定需要运行的用例范围discover unittest.defaultTestLoader.discover(start_dir.,patterntest_case*.py) #设定需要运行的用例范围
unittest.TextTestRunner().run(discover) #运行测试用例 只需要运行testrunner.py即可他会去找符合的文件并运行里面的测试用例test_case开头的方法因为按着上面的匹配方式来说test11_case_04.py不符合匹配的条件所以只运行了test_case_01、test_case_02、test_case_03三个文件里的用例。
运行结果为
test_case_101 test_case_102 test_case_201 test_case_202 test_case_301 test_case_302 一般来说每个单独的功能写到一个独立的测试文件中其命名开头最好都用test开头这样使用discover()的方式运行运行时匹配的比较准确discover()为最常用的用例条件运行方式。 如果大家在使用过程中遇到了问题可以在文章下留言或者关注公众号刘阿童木的进化记录进行留言 下图为公众号二维码内容会同步发出大家可以关注一起学习