Python Unittest:AttributeError:在 Linux 上运行时没有属性 'assertTrue'



我在Python运行一些非常简单的单元测试,发现assertTrue()函数不起作用,而在同一测试用例中,assertEqual()工作正常。 为了简化问题,我将代码最小化为以下内容:

import unittest
class easyTest (unittest.TestCase):
def setUp(self):
pass
def test_true(self):
self.assertTrue(True)
if __name__ == "__main__":
unittest.main()

这批代码在我的 Windows 笔记本电脑上完美运行,但返回

AttributeError: easyTest instance has no attribute 'assertTrue'

当我尝试在 Linux 上运行它时。

在两台笔记本电脑上,我在 IDE 上使用python 2.7.6pyCharm Community Edition 2017.1.4.我的 Linux 笔记本电脑正在运行Ubuntu 14.04.1

我在这里发现了一个非常相似的问题: 属性错误:TestSwitch 实例没有属性"assertTrue" 既然似乎没有人回答这个问题,我在这里再次提问,希望得到一些突出的答案。

根据您的评论,您使用的 unittest 版本是(长期弃用的(独立PyUnit 1.4.1包。正如软件包的主页所提到的:

除非你停留在2000年,否则PyUnit作为模块单元测试在你的Python标准库中。

事实上,unittest被添加到Python 2.1的stdlib中。

IOW,除非你坚持使用古老的遗留代码库(使用Python <2.1!(,否则你应该卸载PyUnit,你的问题就会得到解决。

你的python路径中是否有第二个单元测试模块或包?

如果你创建了一个包含__init__.py文件的 unittest.py 文件或 unittest 目录,python 可以在标准 python 库中找到普通模块之前找到它。

命名本地模块或包 unittest 等效于命名局部变量列表、字典或映射;使用局部重定义屏蔽内置名称。

将该模块或包重命名为其他名称以解决此问题。

相关内容

  • 没有找到相关文章

最新更新