unittest--运行不同文件下的测试(unittest测试用例执行顺序)

网友投稿 314 2022-08-25


unittest--运行不同文件下的测试(unittest测试用例执行顺序)

前戏

在前面我们都是在一个py文件里写测试用例,当然在实际项目中,肯定不会这么干,这样不是一个优秀的测试攻城狮,这时候我们就要查找不同目录下的测试来进行运行了

运行不同文件下的用例

先来看下文件结构

import unittestclass Test_case01(unittest.TestCase): def test01(self): print('test01') def test02(self): print('test02') def test03(self): print('test03') def test04(self): print('test04') def test05(self): print('test05')

test_01.py

import unittestclass Test_case02(unittest.TestCase): def test01(self): print('test01') def test02(self): print('test02') def test03(self): print('test03') def test04(self): print('test04') def test05(self): print('test05')

test_02.py

import unittestclass Test_case03(unittest.TestCase): def test01(self): print('test01') def test02(self): print('test02') def test03(self): print('test03') def test04(self): print('test04') def test05(self): print('test05')

test_03.py

testrun.py

import unittestfrom Testmodule.test_01 import Test_case01from Testmodule.test_02 import Test_case02from Testmodule.test_03 import Test_case03case_01 = unittest.TestLoader().loadTestsFromTestCase(Test_case01)case_02 = unittest.TestLoader().loadTestsFromTestCase(Test_case02)case_03 = unittest.TestLoader().loadTestsFromTestCase(Test_case03)suote = unittest.TestSuite([case_01, case_02, case_03]) # 添加到套件里面unittest.TextTestRunner().run(suote) # 执行所有的

执行结果

...............test01test02test03test04test05test01test02test03test04test05test01test02test03test04test05

使用discover执行所有用例

上面我们一个一个的添加了用例,如果有几十个py文件,难道要添加几十次吗?答案肯定不是的,我们可以使用discover来批量运行

discover里面有三个参数

-case_dir:这个是待执行用例的目录-pattern:这个是匹配脚本名称的规则,test*.py意思是匹配test开头的所有脚本-top_level_dir:这个是顶层目录的名称,一般默认等于None就行

我们还是以上面的三个py文件为例,这时候更改testrun.py

import unittestclass Run_allCase(unittest.TestCase): def run_case(self): case_path = r'E:\django-project\NB_crm\Testmodule' # 第一个参数,文件路径,第二个参数,匹配规则,如果本来就是以test开头的,则可不传 suite = unittest.defaultTestLoader.discover(case_path, 'test*.py') unittest.TextTestRunner().run(suite)if __name__ == '__main__': r = Run_allCase() r.run_case()

结果还是和上面的运行结果一样,我们可以看出来,使用这种方法,很简单,以后直接加py文件就可以了,不需要再添加到里面


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:alibaba seata服务端具体实现
下一篇:selenium--鼠标操作(selenium移动鼠标)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~