为啥 PyCharm 无法运行单元测试?

Posted

技术标签:

【中文标题】为啥 PyCharm 无法运行单元测试?【英文标题】:Why does PyCharm fail to run unit tests?为什么 PyCharm 无法运行单元测试? 【发布时间】:2018-02-16 01:33:43 【问题描述】:

在我的 PyCharm (2016.3.3) 项目中,我有一个名为“tests”的包文件夹,其中包含一些测试模块(使用unittest),例如'test_A.py','test_B.py.'

当我尝试在其中一个模块或整个“测试”包中的所有测试中运行测试时,由于AttributeError: 'module' object has no attribute 'test_A',我得到了nose_helper.failure.Failure(其他测试模块也是如此)。

当我在 PyCharm 之外运行模块时,它们可以正常工作。

有谁知道原因,如何解决?

这里有很多类似的问题,例如1、2、3 等,但这些都没有解决我的问题。

【问题讨论】:

【参考方案1】:

不知道确切原因,但在我的 PyCharm (2016.3.3) 中,我能够通过编辑运行配置来解决问题:

从菜单栏中选择 Run->Edit Configurations,然后选择您的配置,然后在“Unittests”下的“Configuration”选项卡中选中“Inspect only subclasses of unittest.TestCase”。

要使其成为默认值:运行 -> 编辑配置,然后选择默认值->Python 测试->单元测试,然后再次选中相同的框。

此答案基于ancient PyCharm support post。

--编辑--

如果测试模块尝试导入不存在的类,例如,这也会发生(在 PyCharm 2018.3 中) (使用 django)from myapp.models import MyModelA, MyModelB 其中MyModelB 不存在。在这种情况下,修复导入应该可以解决问题。

【讨论】:

以上是关于为啥 PyCharm 无法运行单元测试?的主要内容,如果未能解决你的问题,请参考以下文章

为啥不能识别“异步无效”单元测试?

Visual Studio 单元测试:为啥在测试相同的浮点值时测试运行不确定?

iOS 单元测试包:为啥要启动该应用程序?

pycharm 单元测试失败 not found while handling absolute import

从 PyCharm 社区版中的鼠标右键单击上下文菜单运行/调试 Django 应用程序单元测试?

为啥每次单元测试后我的数据库都没有被清除?