我在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'
答案 0 :(得分:2)
您可以在PyCharm中的任意位置运行测试。根据您运行测试的方式,将更改运行的测试。
如果右键单击项目或文件夹,则将运行项目或文件夹(及其子文件夹)中的所有测试。右键单击文件,然后运行文件中的所有测试。右键单击测试用例,然后只运行该测试用例。右键单击测试方法,然后只运行该测试方法。
如果您使用顶部启动按钮的运行配置,则将运行最后一个已知的测试配置。因此,如果您只在该文件中运行特定测试,则只会再次运行这些测试。如果您选择在任何时候仅重新运行失败的测试,则可能已将运行配置更改为运行所有测试。
要解决此问题,只需右键单击要运行的文件或测试用例,然后选择“在...中运行'单位测试'”。将提供截图,但PyCharm似乎吞下了我的按键。
答案 1 :(得分:0)
对我来说,我搞砸了测试的缩进。