在一次测试过程中,将会有多个用例被执行,那么用例的执行默认顺序是怎样?
unittest框架默认根据ACSII码的顺序加载测试用例,数字与字母的顺序为:0~9,A~Z,a~z。
我们实践一下:
目录结构如下:
1,有两个模块包:test_collections_a 和 test_collections_b
2,每个模块包中有两个.py模块
3,每个.py模块中有两个测试用例类
4,每个测试用例类中有两个测试用例
如同这样:
执行结果:
1,首先,我们看先执行哪个测试用例的模块包:
我们可以看到,依照ASCII码的顺序,a>b(前面的字符一样,会逐字比较),所以先执行test_collections_a。
2,我们看一个模块包中的.py模块执行顺序又是如何:
我们看到,test_ca_1比test_ca_2先执行,遵循ASCII码原则(1>2)
3,我们看同个.py模块中,测试用例类的执行顺序:
我们可以看到,测试用例类也遵循ASCII规则
4,我们继续看一下测试用例类中的用例:
一样遵循ASCII码规则
总结:
1、对于模块包(package)遵循ASCII码的先后顺序
2、对于同个模块包中的.py文件(模块),遵循ASCII码的先后顺序
3、对于同个.py文件(模块)中的测试用例类,遵循ASCII码的先后顺序
4、对于同个测试用例类中的测试用例,遵循ASCII码的先后顺序
5、ASCII规则:0~9,A~Z,a~z
思考:那我们可以打破这个规则码?
原文:https://www.cnblogs.com/ctltest/p/14517667.html