单元测试:如何动态导入测试 类 和 运行?

Unit testing: How can i import test classes dynamically and run?

我正在为 运行 编写一个简单的脚本并测试我的代码。我如何动态导入 运行 我的测试 类?

这是我找到的解决方案,用于导入和动态 运行 我的测试 类。

import glob
import os
import imp
import unittest

def execute_all_tests(tests_folder):
    test_file_strings = glob.glob(os.path.join(tests_folder, 'test_*.py'))
    suites = []
    for test in test_file_strings:
        mod_name, file_ext = os.path.splitext(os.path.split(test)[-1])
        py_mod = imp.load_source(mod_name, test)
        suites.append(unittest.defaultTestLoader.loadTestsFromModule(py_mod))
    text_runner = unittest.TextTestRunner().run(unittest.TestSuite(suites))

安装 pytest 和 运行 您的测试,使用如下命令:

py.test src

就是这样。 Py.test 将加载所有 test_*.py 个文件,在其中找到所有 def test_* 个调用,并为您 运行 每个。

董事会无法回答您的问题,因为它在 "why is water wet?" 范围内;所有测试装置都带有 运行ners,它们会自动执行您的代码片段所做的事情,因此您只需要阅读教程即可开始。

主要 编写自动测试的道具;他们让你超过了所有程序员的 75%。

这个解决方案太简单了,执行我想要的。

import unittest

def execute_all_tests(tests_folder):
    suites = unittest.TestLoader().discover(tests_folder)
    text_runner = unittest.TextTestRunner().run(suites)