为什么我的单元测试没有运行

时间:2015-09-03 16:27:10

标签: python unit-testing python-3.x

我正在编写一个测试我的代码的联合体,但最后它说了0次测试。 这是我的联合代码:

import roman1
import roman2
import unittest

class KnownValues(unittest.TestCase):
    known_values =  ((1, 'I'),
                     (2, 'II'),
                     (3, 'III'),
                     (4, 'IV'),
                     (5, 'V'))
def test_to_roman_values(self):
    for integer, numeral in self.known_values:
        result = roman1.to_roman(integer)
        self.assertEqual(numeral, result)

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

但它说在0秒内进行了0次测试。我能够运行另一个我写得很好的单位,设置基本相同。我的代码有问题吗?我正在使用mac OS X中的python

1 个答案:

答案 0 :(得分:0)

原样,您的test_to_roman_values方法不在KnownValues类中,因为缩进是错误的,如jonsharpe所述。

您需要将整个方法缩进一个标签(4个空格),如:

import roman1
import roman2
import unittest

class KnownValues(unittest.TestCase):
    known_values =  ((1, 'I'),
                     (2, 'II'),
                     (3, 'III'),
                     (4, 'IV'),
                     (5, 'V'))

    def test_to_roman_values(self):
        for integer, numeral in self.known_values:
            result = roman1.to_roman(integer)
            self.assertEqual(numeral, result)

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

这将使它成为一个Class方法,您的测试应该正常运行。