阅读(4933) (0)

unittest 重用旧的测试代码

2022-08-01 11:16:51 更新

一些用户会发现他们有现有的测试代码,他们希望从unittest运行,而无需将每个旧的测试函数转换为TestCase子类。

因此,unittest 提供了一个 FunctionTestCase 类。TestCase 的这个子类可用于包装现有的测试函数。还可以提供设置和拆卸功能。

给定以下测试函数:

def testSomething():
    something = makeSomething()
    assert something.name is not None
    # ...

可以创建一个等效的测试用例实例,如下所示,具有可选的set-up和tear-down方法:

testcase = unittest.FunctionTestCase(testSomething,
                                     setUp=makeSomethingDB,
                                     tearDown=deleteSomethingDB)
注意
尽管 FunctionTestCase 可用于将现有测试基础快速转换为基于unittest的系统,但不建议使用此方法。花时间设置适当的 TestCase 子类将使将来的测试重构变得无限容易。

在某些情况下,现有测试可能是使用 doctest 模块编写的。如果是这样,doctest 提供了一个 DocTestSuite 类,它可以从现有的基于 doctest 的测试中自动构建 unittest.TestSuite 实例