Unittset套件不管用

我只想用套件执行test02_b 结果却全都执行了


import unittest

class Login(unittest.TestCase):
    def test01_a(self):
        print("测试用例01")

    def test02_b(self):
        print("测试用例02")

    def test03_c(self):
        print("测试用例03")

if __name__ == '__main__':
   # 创建测试套件
   suite = unittest.TestSuite()

   # 将要执行的测试用例添加到测试套件中
   suite.addTest(Login("test02_b"))

   # 执行测试用例
   unittest.TextTestRunner().run(suite)

执行结果:
Ran 3 tests in 0.002s

OK
Launching unittests with arguments python -m unittest E:/SoftTest/selecode/unittest/day01/Login.py in E:\SoftTest\selecode\unittest\day01

Process finished with exit code 0
测试用例01
测试用例02
测试用例03

【以下回答由 GPT 生成】

解决方案: 可以使用 TestLoader.loadTestsFromName() 方法来从测试类中选择指定的测试用例并创建对应的测试套件。

代码如下:

import unittest

class Login(unittest.TestCase):
    def test01_a(self):
        print("测试用例01")

    def test02_b(self):
        print("测试用例02")

    def test03_c(self):
        print("测试用例03")

if __name__ == '__main__':
    # 创建测试套件
    suite = unittest.TestSuite()

    # 选择指定的测试用例
    test_case = unittest.TestLoader().loadTestsFromName('test02_b', Login)

    # 将要执行的测试用例添加到测试套件中
    suite.addTest(test_case)

    # 执行测试用例
    unittest.TextTestRunner().run(suite)

通过以上代码,只会执行 test02_b 这个测试用例。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^