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

Python unittest-测试具有相同名称的多个文件,python,python-unittest,Python,Python Unittest,我正在尝试使用相同的名称和签名测试多个函数。(学生作业提交。)我的设置当前如下所示: TestCases/ __init__ testcase1.py submission1/ func.py submission2/ func.py submission3/ func.py 每个func.py都包含一个名为foo的函数。我想用相同的测试套件测试foo的每次出现。的标准单元测试设置 import u

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

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 import foo的
行出现问题(毫不奇怪),因为func不在同一个文件夹中,我似乎无法让它动态选择正确的导入

我突然想到,我可以利用已经扩展了基类的优势,通过执行以下操作来消除导入的需要:

    import unittest

    class TestFoo(unittest.TestCase):

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

        def test_empty(self):
            self.assertTrue(self.foo(''))
在我的测试程序中,实例化一个
TestFoo
对象,并将要测试的函数传递给它:

tf = TestFoo(foo)
但是我无法正确地定义和调用测试套件


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

在提交文件上循环并获取对单个
func.py
文件的引用不是问题-我可以打开单个文件并查看其内容。让导入在循环中正常工作是一个问题。根据我尝试的技术,我可能会遇到各种各样的导入错误,或者它会多次测试第一次导入。我实际上什么都没做。虽然我尝试了很多方法,但都不管用;我感兴趣的是关于工作方法的建议,而不是对可能不值得纠正的代码的纠正。我看到了以下的可能性,如果你已经做了其中的一项工作,那么即使知道我在正确的道路上也会非常有帮助。因此:哎哟-以上更多:甚至不能正确评论。我应该:将测试文件
testcase1.py
复制到每个子文件夹并在那里运行;将每个
func.py
复制到根
TestCases
文件夹并测试它,用每个新文件夹覆盖;根本不复制文件,而是在运行子文件夹时动态更改导入和引用;完全采用其他方法?循环提交并获取单个
func.py
文件的引用不是问题-我可以打开单个文件并查看其内容。让导入在循环中正常工作是一个问题。根据我尝试的技术,我可能会遇到各种各样的导入错误,或者它会多次测试第一次导入。我实际上什么都没做。虽然我尝试了很多方法,但都不管用;我感兴趣的是关于工作方法的建议,而不是对可能不值得纠正的代码的纠正。我看到了以下的可能性,如果你已经做了其中的一项工作,那么即使知道我在正确的道路上也会非常有帮助。因此:哎哟-以上更多:甚至不能正确评论。我应该:将测试文件
testcase1.py
复制到每个子文件夹并在那里运行;将每个
func.py
复制到根
TestCases
文件夹并测试它,用每个新文件夹覆盖;根本不复制文件,而是在运行子文件夹时动态更改导入和引用;完全采用其他方法?