如何在PyCharm中运行nosetest?

30 投票
3 回答
21438 浏览
提问于 2025-04-16 05:28

如何在PyCharm中执行nosetest来运行所有单元测试?

我知道PyCharm支持Python的unittest和py.test,并且在PyCharm 1.1版本中会正确支持nosetests,但我想知道有没有其他的解决办法。

3 个回答

2

这件事很简单就能做到……

我假设你已经安装了nose这个工具。

而且你的项目结构应该是这样的:

   \MyProj_Source
      \MyProj
          init.py
          MyProj.py

我们需要创建一个Tests文件夹(是的,这个名字很重要)。然后在这个Tests文件夹里放我们的nose测试文件。所以文件夹的结构看起来是这样的。

   \MyProj_Source
      \MyProj
          init.py
          MyProj.py
       \Tests
          test_stuff.py

到这一步,你需要去

偏好设置 -> 工具 -> Python集成工具 ** 然后把 **默认测试运行器设置为nose

现在你应该可以:

手动

  • 使用nose运行test_stuff.py文件
  • 为MyProj.py文件启用自动测试,这样每次修改后都会自动运行测试

第二种方法是最好的选择,但可能会花一些时间。

希望这对你有帮助。

2

如果你不需要图形化的测试运行器,可以简单地创建一个“Python脚本”的运行配置,然后像在命令行中那样运行测试。

不过,如果想要在图形化测试运行器中使用nose测试,恐怕只能修改PyCharm安装包里的helpers/pycharm/utrunner.py文件。

41

在当前版本的Pycharm(2.6)中,测试文件上应该有一个右键菜单选项“在...中运行Nosetests”。如果这个选项没有出现,可以去 文件->设置->项目设置->Python集成工具,确保默认的测试运行器是Nosetests。当然,你需要先安装Nosetests,如果没有安装,Pycharm会提示你安装。

不过,这里有个限制。如果你要测试的文件里没有从unittest.TestCase类派生的类,它就不会自动显示这个选项。如果你使用的是nose.tools或者简单的断言,它也不会自动提供这个选项。这可能是个bug。

撰写回答