为什么 python 在我的测试用例中只有 运行 一个 test_method?

Why does python only run a single test_method in my TestCase?

我有一组基本如下所示的单元测试:

import unittest

class MyTestCase(unittest.TestCase):

    def test_one(self):
        self.assertEqual(1,1)

    def test_two(self):
        self.assertEqual(2,2)


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

当我 运行 测试时,我希望看到两个 test_methods(test_one 和 test_two)的结果,但我只得到一个结果:

$ python -m unittest -v tests.test_dummy
test_one (tests.test_dummy.MyTestCase) ... ok

----------------------------------------------------------------------
Ran 1 test in 0.000s

OK

这是怎么回事?

哦,这真是令人羞愧。

这是一个缩进问题。测试文件包含制表符和空格的组合,因此无法识别第二个测试。

我从我的真实代码中复制了不可见的故障,到简化的 MyTestCase class 我用来复制错误。但是 Whosebug 去掉了标签,所以没有其他人能够复制。

这是杀死我的代码的错误。选项卡以连字符显示:----

import unittest

class MyTestCase(unittest.TestCase):

    def test_one(self):
        self.assertEqual(1,1)

----def test_two(self):
--------self.assertEqual(2,2)


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