我正在尝试使用相同的名称和签名测试多个函数。 (学生作业提交。)我的设置目前如下:
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)
但后来我无法正确定义和调用测试套件。
或者是否有一种完全不同的方法可以满足我的需求?