-1

以下 python 脚本搜索并执行当前文件夹中的所有 pyunit 测试。

"""回归测试框架

此模块将在名为的同一目录中搜索脚本
XYZtest.py。每个这样的脚本都应该是一个测试套件,用于测试
模块通过 PyUnit。(从 Python 2.1 开始,PyUnit 包含在
标准库为“unittest”。)这个脚本将聚合所有
将测试套件整合到一个大测试套件中,并一次运行它们。
"""

导入系统、操作系统、重新、单元测试

定义回归测试():
    路径 = os.path.abspath(os.path.dirname(sys.argv[0]))
    文件 = os.listdir(路径)
    打印'你在这里!' ,os.getcwd()
    test = re.compile(".test\.py$", re.IGNORECASE)
    文件 = 过滤器(test.search,文件)
    filenameToModuleName = lambda f: os.path.splitext(f)[0]
    moduleNames = map(filenameToModuleName, 文件)
    模块 = 地图(__import__,模块名称)
    load = unittest.defaultTestLoader.loadTestsFromModule
    返回 unittest.TestSuite(map(load, modules))

如果 __name__ == "__main__":
    unittest.main(defaultTest="regressionTest")

我怎样才能让它在子文件夹中搜索测试文件。

也许是这样的:

导入 sys、os、re、unittest、fnmatch
    对于 os.walk(path) 中的根目录、目录和文件:
        对于 fnmatch.filter(files, pattern) 中的文件名:
            打印 os.path.join(root, 文件名)
4

1 回答 1

0

改变:

def regressionTest():
   path = os.path.abspath(os.path.dirname(sys.argv[0]))

至:

def regressionTest(somearg):
   path = os.path.abspath(os.path.dirname(somearg))

接着:

for root, dirs, files in os.walk(path):
    regressionTest(root)
于 2011-02-11T16:50:29.100 回答