我正在寻找一种方法来自定义 python 单元测试的输出。到目前为止,我认为我最好的机会是使用pytest 钩子来实现我的目标。
无论如何,我已经尝试自己实现一些东西,并且在使用 Python 的 AST 导航测试类方面相当成功。我用它来查找所有执行“assertEqual”或类似表达式的测试类、函数和节点以进行测试。
现在下一步是动态加载测试,执行它们,将输出重定向到一个文件,然后解析这个文件以获得实际的测试结果,这样我就可以结合来自 AST 和实际执行的信息。但我真的被困在这里,我尝试了几种方法,但我无法在 TestSuite 中加载测试用例,然后我会将其传递给 TextTestRunner,它将输出写入文件。
我试过以下代码:
“~/dev/python/myproject/tests/mytestclass.py”:我要加载的测试类的完整路径 “~/dev/python/custom_tests/custom_tests/parser.py”:应该加载的文件的完整路径上面给出的测试类
我将项目的路径(“~/dev/python/myproject/”)添加到我的路径中
sys.path.insert(0, self.path)
我试图找到模块“测试”
f, pathname, desc = imp.find_module("tests") module = imp.load_module("tests", f, pathname, desc)
我尝试加载 mytestclass
f, pathname, desc = imp.find_module("test_status_code", module.__path__) test = imp.load_module("mytestclass", f, pathname, desc)
到目前为止这有效,但我怎样才能将它添加到 TestSuite?