根据输入参数调用unittest中的不同方法

时间:2014-06-25 16:38:29

标签: python unit-testing testcase

我在Python子类unittest.TestCase中编写测试脚本。从test_开始,有多种测试方法。

我想知道的是根据输入参数调用不同的测试方法,例如trial test.py -option。我想知道在单元测试框架中是否有办法做到这一点。非常感谢。

1 个答案:

答案 0 :(得分:2)

是的,你可以! 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部分的文档。这个例子只是最明确的一个,还有很多其他方法来测试这只猫。