【发布时间】:2014-06-25 16:38:29
【问题描述】:
我正在用 Python 子类化unittest.TestCase 编写一个测试脚本。有多种以test_ 开头的测试方法。
我想知道的是根据输入参数调用不同的测试方法,比如trial test.py -option。我想知道在 unittest 框架中是否有办法做到这一点。非常感谢。
【问题讨论】:
标签: python unit-testing testcase
我正在用 Python 子类化unittest.TestCase 编写一个测试脚本。有多种以test_ 开头的测试方法。
我想知道的是根据输入参数调用不同的测试方法,比如trial test.py -option。我想知道在 unittest 框架中是否有办法做到这一点。非常感谢。
【问题讨论】:
标签: python unit-testing testcase
是的,你可以! Straight from the unittest documentation on organizing your test code
假设您有一个看起来像这个人的 TestCase:
import unittest
class WidgetTestCase(unittest.TestCase):
def setUp(self):
self.widget = Widget('The widget')
def tearDown(self):
self.widget.dispose()
self.widget = None
def test_default_size(self):
self.assertEqual(self.widget.size(), (50,50),
'incorrect default size')
def test_resize(self):
self.widget.resize(100,150)
self.assertEqual(self.widget.size(), (100,150),
'wrong size after resize')
现在您可以在您的 TestSuite 设置/运行代码中执行类似的操作:
def suite():
suite = unittest.TestSuite()
suite.addTest(WidgetTestCase('test_default_size'))
suite.addTest(WidgetTestCase('test_resize'))
return suite
显然,您可以使用argparse 设置您自己的选项并根据您的需要自定义结构。查看Organizing Your Test Code 部分的文档。该示例只是最明确的示例,还有很多其他方法可以测试这只猫。
【讨论】: