Python单元测试所有测试用例

时间:2014-09-15 16:16:17

标签: python unit-testing

我在pycharm上运行单元测试,但有些人发现了一些奇怪的东西。当我开始测试一个类,更具体地说是它的方法时,我只是编写如下的测试用例:

# hey.py
class hey:

    def hello(self):
        return True

    def bye(self):
        return 'Bye'


# test_hey.py
from unittest import TestCase
class TestHey(TestCase):
    def test_hello(self):
        self.fail()

    def test_bye(self):
        self.fail()

当我点击运行时,它会自动运行所有测试。大。但是从今天开始,对于我的一些其他自定义类,它似乎只运行第一个。 ie)只是运行test_hello而完全没有测试test_bye。我会提供一个例子,但行为不一致,因为它有时有效,而不是下一个。我只是想询问是否有人知道我是否完全错过了什么?

编辑:当我注释掉实际运行的测试用例并离开那些没有运行的测试用例时,我收到以下错误:

Traceback (most recent call last):
  File "C:\Program Files (x86)\JetBrains\PyCharm Community Edition 3.4.1\helpers\pycharm\utrunner.py", line 148, in <module>
    testLoader.makeTest(getattr(testCaseClass, a[2]), testCaseClass))
AttributeError: 'TestLoader' object has no attribute 'makeTest'

2 个答案:

答案 0 :(得分:2)

您可以在PyCharm中的任意位置运行测试。根据您运行测试的方式,将更改运行的测试。

如果右键单击项目或文件夹,则将运行项目或文件夹(及其子文件夹)中的所有测试。右键单击文件,然后运行文件中的所有测试。右键单击测试用例,然后只运行该测试用例。右键单击测试方法,然后只运行该测试方法。

如果您使用顶部启动按钮的运行配置,则将运行最后一个已知的测试配置。因此,如果您只在该文件中运行特定测试,则只会再次运行这些测试。如果您选择在任何时候仅重新运行失败的测试,则可能已将运行配置更改为运行所有测试。

要解决此问题,只需右键单击要运行的文件或测试用例,然后选择“在...中运行'单位测试'”。将提供截图,但PyCharm似乎吞下了我的按键。

答案 1 :(得分:0)

对我来说,我搞砸了测试的缩进。