【问题标题】:call different methods in unittest according to input arguments根据输入参数在unittest中调用不同的方法
【发布时间】:2014-06-25 16:38:29
【问题描述】:

我正在用 Python 子类化unittest.TestCase 编写一个测试脚本。有多种以test_ 开头的测试方法。

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

【问题讨论】:

标签: python unit-testing testcase


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2017-06-07
    • 1970-01-01
    • 1970-01-01
    • 2017-12-11
    • 1970-01-01
    • 1970-01-01
    • 2014-03-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多