使用 unittest.TestCase 子类 Python 的方法调用测试方法
Invoking Test Methods with a Method for a unittest.TestCase Subclass Python
我一直在阅读 the documentation 的 unittest
模块,但我无法破译是否有可能做我想做的事情。具体来说,我希望能够执行以下操作 class:
class TestMyCode(unittest.TestCase):
def test_code(self):
self.assertTrue(True)
# Not sure how to do implement this method below
def run_tests(self):
# This would run all of the tests in my class
self.run()
我想这样做的原因是因为我想从另一个 Python 文件中 运行 我的测试。例如,假设我正在另一个文件中编写代码:
from test_my_code import TestMyCode
tests = TestMyCode()
# Runs all of the tests from the TestMyCode subclass
tests.run_tests()
这可能吗?
谢谢
您尝试做的事情的替代方法是 运行 下面显示的 main
模块。如果您希望 运行 中的测试,请确保 test
模块可用于导入。希望对您有所帮助!
模块: test
import unittest
class TestMyCode(unittest.TestCase):
def test_code(self):
self.assertTrue(True)
模块: main
import test
def run_tests(module):
module.unittest.main(module.__name__)
if __name__ == '__main__':
run_tests(test)
附录: 要完成您的请求,请添加一个方法,将 unittest.main
完成的一些内部工作复制到 运行 测试。以下两个模块有助于演示如何修改 TestMyCode
class 以便它可以 运行 在没有外部帮助的情况下自行测试。
模块: test_module
import unittest
class TestMyCode(unittest.TestCase):
def test_code(self):
self.assertTrue(True)
@classmethod
def run_tests(cls):
test = unittest.defaultTestLoader.loadTestsFromTestCase(cls)
unittest.TextTestRunner().run(test)
模块: main
import test_module
def main():
test_module.TestMyCode.run_tests()
if __name__ == '__main__':
main()
我一直在阅读 the documentation 的 unittest
模块,但我无法破译是否有可能做我想做的事情。具体来说,我希望能够执行以下操作 class:
class TestMyCode(unittest.TestCase):
def test_code(self):
self.assertTrue(True)
# Not sure how to do implement this method below
def run_tests(self):
# This would run all of the tests in my class
self.run()
我想这样做的原因是因为我想从另一个 Python 文件中 运行 我的测试。例如,假设我正在另一个文件中编写代码:
from test_my_code import TestMyCode
tests = TestMyCode()
# Runs all of the tests from the TestMyCode subclass
tests.run_tests()
这可能吗?
谢谢
您尝试做的事情的替代方法是 运行 下面显示的 main
模块。如果您希望 运行 中的测试,请确保 test
模块可用于导入。希望对您有所帮助!
模块: test
import unittest
class TestMyCode(unittest.TestCase):
def test_code(self):
self.assertTrue(True)
模块: main
import test
def run_tests(module):
module.unittest.main(module.__name__)
if __name__ == '__main__':
run_tests(test)
附录: 要完成您的请求,请添加一个方法,将 unittest.main
完成的一些内部工作复制到 运行 测试。以下两个模块有助于演示如何修改 TestMyCode
class 以便它可以 运行 在没有外部帮助的情况下自行测试。
模块: test_module
import unittest
class TestMyCode(unittest.TestCase):
def test_code(self):
self.assertTrue(True)
@classmethod
def run_tests(cls):
test = unittest.defaultTestLoader.loadTestsFromTestCase(cls)
unittest.TextTestRunner().run(test)
模块: main
import test_module
def main():
test_module.TestMyCode.run_tests()
if __name__ == '__main__':
main()