码迷,mamicode.com
首页 > 其他好文 > 详细

unittest用例执行的顺序

时间:2020-01-19 00:17:39      阅读:111      评论:0      收藏:0      [点我收藏+]

标签:bdd   优先   ddt   add   str   不能   文件的   ase   bbb   

"""
用例的执行顺序涉及多个层级:在多个测试目录的情况下,先执行哪个目录?在多个测试文件的情况下,
先执行哪个文件?在多个测试类的情况下,先执行哪个测试类?在多个测试方法(用例)的情况下,
先执行哪个测试方法?
"""

import unittest
class TestBdd(unittest.TestCase):
def setUp(self):
print("test TestBdd:")

def test_ccc(self):
print("test ccc")

def test_aaa(self):
print("test aaa")

def tearDown(self):
pass

class TestAdd(unittest.TestCase):
def setUp(self):
print("test TestAdd:")

def test_bbb(self):
print("test bbb")

def tearDown(self):
pass

if __name__ == ‘__main__‘:
unittest.main()

"""
unitest框架默认根据ASCII码的顺序加载测试用例,数字与字母的顺序为:0-9,A~Z,a-z。所以,
TestAdd类会优先于TestBdd类被执行,test_aaa()方法会优先于test_ccc()被执行,
因而它并没有按照用例从上到下的顺序执行。
对于测试目录与测试文件来说,unitest框架同样是按照这个规则来加载测试用例的。
那么可不可以让test_ccc()先执行?答案是肯定的,只是不能使用默认的main()方法了,
而是需要通过TestSuite类的addTest()方法按照一定的顺序来加载。
"""

if __name__ == "__main__":
# 构造测试集
suite = unittest.TestSuite()
suite.addTest(TestBdd("test_ccc"))
suite.addTest(TestAdd("test_bbb"))
suite.addTest(TestBdd("test_aaa"))
# 执行测试
runner = unittest.TextTestRunner()
runner.run(suite)

unittest用例执行的顺序

标签:bdd   优先   ddt   add   str   不能   文件的   ase   bbb   

原文地址:https://www.cnblogs.com/zhang-da/p/12210605.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!