从多个测试用例创建测试套件

Creating a test suite from multiple test cases

我已经熟悉了 Python 中的 unittest 库,并且我写了几个 unitest.TestCase 看起来与此类似的东西:

class TestOne(unittest.TestCase):
    def setUp(self):
        pass

    def first_test(self):
        self.assertEqual('a', 'b')

    def second_test(self):
        self.assertEqual('a', 'b')

    def third_test(self):
        self.assertEqual('a', 'b')

    def tearDown(self):
        pass


class TestTwo(unittest.TestCase):
    def setUp(self):
        pass

    def first_test(self):
        self.assertEqual('a', 'b')

    def second_test(self):
        self.assertEqual('a', 'b')

    def third_test(self):
        self.assertEqual('a', 'b')

    def tearDown(self):
        pass


class TestThree(unittest.TestCase):
    def setUp(self):
        pass

    def first_test(self):
        self.assertEqual('a', 'b')

    def second_test(self):
        self.assertEqual('a', 'b')

    def third_test(self):
        self.assertEqual('a', 'b')

    def tearDown(self):
        pass

现在这并不是我的代码看起来的样子,但这是遵循的基本结构。

我知道如果我想执行单个 TestCase,我可以这样做:

suite = unittest.TestLoader().loadTestsFromTestCase(TestOne)
unittest.TextTestRunner(verbosity=2).run(suite)

但是,我一直在努力同时将多个 TestCase 设置为 运行。

我试过这样做:

suite = unittest.TestSuite()
suite.addTest(TestOne())
unittest.TextTestRunner(verbosity=2).run(suite)

但这会引发错误:

ValueError: no such test method in <class 'unit_tests.TestOne'>: runTest

我知道如果每个案例只有一个测试,我会使用 runTest 方法,但我有几个,所有这些都需要在 TestCase 中进行单独测试.

我已经尝试仔细阅读 unittest 文档,但我一直无法弄清楚如何对单个测试套件中的多个测试用例进行 运行 测试。

我查看了 nosetests,它完成了我想做的事情而无需对我的代码进行任何修改,但我想知道是否有办法 运行 在不依赖外部库的情况下从套件中的多个案例进行测试。

您是否尝试从使用 TestLoader 创建的套件列表中创建一个 TestSuite?这是改编自 Python 文档的示例:

suite1 = unittest.TestLoader().loadTestsFromTestCase(TestOne)
suite2 = unittest.TestLoader().loadTestsFromTestCase(TestTwo)
alltests = unittest.TestSuite([suite1, suite2])