python-unittest执行顺序

 关于unittest框架执行顺序是:

复制代码
import unittest

class TestCases(unittest.TestCase):
    @classmethod
    def setUpClass(cls):
        setattr(unittest.TextTestResult, 'startTestRun', '获取token方法')
        print("setUPClass")

    def setUp(self):
        print("setUP")

    def testOne(self):
        print("testone111")
    def testTwo(self):
        print("testtwo222")

    @unittest.skip('跳过')
    def testA(self):
        print("testA")

    @unittest.skipIf(True,'条件真跳过')
    def testB(self):
        print("testB")

    @unittest.skipUnless(False,'条件假跳过')
    def testC(self):
        print("testC")

    @unittest.expectedFailure  ##标记该测试预期为失败(断言结果是否为False,为假则测试用例通过)
    def testD(self):
        print("testD")

    def tearDown(self):
        print("tearDown")

    @classmethod
    def tearDownClass(cls):
        print(getattr(unittest.TextTestResult, 'startTestRun'))
        print("tearDownClass")

if __name__ == '__main__':
    unittest.main(verbosity=2)


out:

setUPClass
setUP
testD
tearDown
setUP
testone111
tearDown
setUP
testtwo222
tearDown
获取token方法
tearDownClass

复制代码

 

 

关于unittest用例执行顺序是:
  根据ASCII码的顺序加载,数字与字母的顺序为:0-9,A-Z,a-z。所以以A开头的测试用例方法会优先执行,以a开头会后执行

复制代码
"""
unittest中测试用例执行顺序
"""

import unittest
from operator import eq

class TestOrder(unittest.TestCase):
    def test_b(self):
        print('test_b success')

    def test_a1(self):
        print('test_a1 success')

    def test_c(self):
        print('test_c success')

    def test_a2(self):
        print('test_a2 success')

if __name__ == '__main__':
    def ln(f):
        return getattr(TestOrder, f)
    suite = unittest.TestSuite()
    loader = unittest.TestLoader()
    # eq(x,y) 函数用于比较2个对象,如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1
    loader.sortTestMethodsUsing = lambda a, b: eq(ln(a), ln(b))
    suite.addTest(loader.loadTestsFromTestCase(TestOrder))
    unittest.TextTestRunner(verbosity=2).run(suite)
复制代码

 

posted @   南方的墙  阅读(766)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示