向 TestSuite 添加简单的测试方法

Add simple test method to TestSuite

如何将简单的测试方法从 unittest.TestCase 添加到 TestSuite。正如我所见,只能将整个 class 添加到套件中,例如我想要这样的东西:

import unittest


class MyBaseTestCase(unittest.TestCase):
    @classmethod
    def setUpClass(cls):
        cls.abs = "test"


class MyTestClass(MyBaseTestCase):
    def test_abs(self):
        if self.abs:
            pass


class MyTestSuite(unittest.TestSuite):
    def __init__(self):
        super().__init__()
        self.addTest(MyTestClass.test_abs)

这里我得到一个错误:AttributeError: 'TeamcityTestResult' object has no attribute 'abs'。它似乎作为测试运行,但 setUpClass 不调用。

您 运行 测试套件如何?我用了你的代码 运行 它使用 'python3 -m unittest test.py':

import unittest


class MyBaseTestCase(unittest.TestCase):
    @classmethod
    def setUpClass(cls):
        cls.abs = "test"


class MyTestClass(MyBaseTestCase):
    def test_abs(self):
        if self.abs:
            pass


class MyTestSuite(unittest.TestSuite):
    def __init__(self):
        super().__init__()
        self.addTest(MyTestClass.test_abs)

而且有效。