单元测试:如何动态导入测试 类 和 运行?
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)
我正在为 运行 编写一个简单的脚本并测试我的代码。我如何动态导入 运行 我的测试 类?
这是我找到的解决方案,用于导入和动态 运行 我的测试 类。
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)