欢迎访问宙启技术站
智能推送

如何使用unittest.TestLoader动态加载测试用例

发布时间:2023-12-27 08:35:14

使用unittest.TestLoader可以动态加载测试用例,方便灵活地管理和执行测试用例。以下是使用unittest.TestLoader动态加载测试用例的示例:

首先,创建测试文件和文件夹。在某个文件夹下,创建一个名为"test_cases"的文件夹,然后在该文件夹下创建两个测试文件,分别为"test_calculator.py"和"test_search.py"。

1. test_calculator.py

import unittest

class CalculatorTest(unittest.TestCase):
    def test_add(self):
        self.assertEqual(2 + 2, 4)

    def test_subtract(self):
        self.assertEqual(5 - 3, 2)

2. test_search.py

import unittest

class SearchTest(unittest.TestCase):
    def test_search_keyword(self):
        self.assertTrue("keyword" in "this is a keyword")

    def test_search_not_found(self):
        self.assertFalse("notfound" in "this is a keyword")

然后,创建一个名为"test_suite.py"的文件,用于加载并执行这些测试用例。

3. test_suite.py

import unittest

loader = unittest.TestLoader()
suite = unittest.TestSuite()

# 使用TestLoader加载test_cases文件夹下的所有测试用例
suite.addTests(loader.discover('test_cases'))

# 使用TestRunner执行测试用例
runner = unittest.TextTestRunner()
runner.run(suite)

在上面的代码中,首先创建了一个TestLoader对象loader,然后创建了一个TestSuite对象suite。接下来,使用loader的discover方法加载test_cases文件夹下的所有测试用例,并将它们添加到suite中。

最后,使用unittest.TextTestRunner()对象的run方法执行suite中的所有测试用例。

运行"test_suite.py"文件,可以看到输出结果如下:

....
----------------------------------------------------------------------
Ran 4 tests in 0.001s

OK

这表示成功执行了4个测试用例,其中4个测试用例都通过。

使用unittest.TestLoader可以很方便地动态加载和执行测试用例。你可以在"test_cases"文件夹下继续添加更多的测试文件,并在"test_suite.py"中使用loader.discover方法加载更多的测试用例。这样,你就可以轻松地扩展和管理你的测试用例库了。