像python 2.7中的功能进行子测试吗?

时间:2019-02-26 17:00:04

标签: python python-2.7 python-unittest parameterized-unit-test

如何在Python 2.7中编写如下的测试用例?我没有使用Pytest / Python3的选择。

import unittest

class TestStringMethods(unittest.TestCase):
    def test_upper(self):
        tests = [
            ('foo', 'FOO'),
            ('too', 'TOO'),
            ('poo', 'POO'),
        ]
        for value, expected in tests:
            with self.subTest(value=value):
                self.assertEqual(value.upper(), expected)

if __name__ == '__main__':
    unittest.main()

总而言之,我正在寻找Python 2.7中“ Pytest中的参数化固定装置”和“ unittest的子测试功能”的替代品。

我可以在Python 2.7中执行以下操作,但是第一个失败的断言将退出测试。由于我的测试用例中只有一种方法,因此尽管有一个测试评估了许多断言,但是只有一个测试可以运行。

class TestStringMethods(unittest.TestCase):
    def test_upper(self):
        self.assertEqual('foo'.upper(), 'FOO')
        self.assertEqual('too'.upper(), 'TOO')
        self.assertEqual('poo'.upper(), 'POO')

if __name__ == '__main__':
    unittest.main()

如果我想分别测试每个断言,我将不得不将每个断言放在自己的方法中,这将很麻烦。

0 个答案:

没有答案