Python unittest - 测试具有相同名称的多个文件

时间:2016-01-16 23:22:57

标签: python python-unittest

我正在尝试使用相同的名称和签名测试多个函数。 (学生作业提交。)我的设置目前如下:

TestCases/
    __init__
    testcase1.py
    submission1/
        func.py
    submission2/
        func.py
    submission3/
        func.py

每个func.py都包含一个名为foo的函数。我想用相同的测试套件测试每次出现的foo。

的标准单元测试设置
    import unittest
    from func import foo

    class TestFoo(unittest.TestCase):

        def test_empty(self):
            self.assertTrue(foo(''))
    ...

if __name__ == '__main__':
    unittest.main()
由于func不在同一个文件夹中,因此

from func import foo行的(不出所料)问题,我似乎无法让它动态地获取正确的导入。

让我感到震惊的是,我可以利用已经扩展基类并通过执行以下操作来消除导入的需要:

    import unittest

    class TestFoo(unittest.TestCase):

        def __init__(self, foo):
            self.foo = foo

        def test_empty(self):
            self.assertTrue(self.foo(''))

并在我的测试程序中实例化一个TestFoo对象并将该函数传递给test:

tf = TestFoo(foo)

但后来我无法正确定义和调用测试套件。

或者是否有一种完全不同的方法可以满足我的需求?

0 个答案:

没有答案