你如何从pycharm运行nosetest?

Posted

技术标签:

【中文标题】你如何从pycharm运行nosetest?【英文标题】:How do you run nosetest from pycharm? 【发布时间】:2011-04-25 05:32:40 【问题描述】:

如何从pycharm执行nosetest来运行所有单元测试?

我知道 pycharm 支持 python 的 unittest 和 py.test 并且它们将正确支持 pycharm 1.1 中的鼻子测试,但我想知道是否有解决方法。

【问题讨论】:

鼻子测试现在可以在 Pycharm 中使用。 【参考方案1】:

在当前版本的 Pycharm (2.6) 中,测试文件上应该有一个上下文菜单“run Nosetests in ...”。如果缺少,请转到file->settings->Project Settings->python integrated tools 并确保默认测试运行程序是 Nosetests。你当然需要安装 Nosetests - 如果你不这样做,pycharm 会提供这个。

这确实有限制。如果有问题的文件没有派生自 unittest.TestCase 的类,它将不会自动显示。如果您使用的是 nose.tools 或简单的断言,它不会自动提供此功能。这可能是一个错误。

【讨论】:

这确实有限制。如果有问题的文件没有导入unittest(它使用nose.tools,或mock assert或其他东西),那么pycharm不会自动提供这个运行选项。 在 PyCharm 4 中,您将在文件 --> 设置 --> 工具 --> Python 集成工具中找到此选项。默认测试运行器 = "Nosetests"。 Zymotik - 初始“文件”在所有版本中【参考方案2】:

如果您可以不用图形化测试运行器,您可以简单地创建一个“Python 脚本”运行配置并在从命令行运行测试时运行它们。

恐怕让鼻子测试与图形测试运行器一起工作的唯一方法是破解 PyCharm 发行版中的 helpers/pycharm/utrunner.py。

【讨论】:

希望当 pycharm 1.1 发布时,您可以编辑您的答案。 :)【参考方案3】:

这很容易实现....

我假设你已经安装了鼻子。

你的项目看起来像

   \MyProj_Source
      \MyProj
          init.py
          MyProj.py

我们需要创建一个 Tests 目录(是的,这个名字似乎很重要)。在那个 Tests 文件夹中,我们放置我们的鼻子测试文件。所以目录结构看起来像这样。

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

此时你需要去

Preferences-> Tools -> Python Integrated Tools ** 并将 **Default Test Runner 设置为 nose

你现在应该可以

手动

使用鼻子运行 test_stuff.py 为文件 MyProj.py 启用自动测试,以便在进行任何更改后运行测试

第二种方式是最好的选择,但它可能会有点耗时。

希望对您有所帮助。

【讨论】:

以上是关于你如何从pycharm运行nosetest?的主要内容,如果未能解决你的问题,请参考以下文章

pycharm编译乘法计算问题?

如何让 PyC​​harm 显示来自 pytest 的整个错误差异?

Pycharm(Django)运行后报错,EOFError: marshal data too short

python如何运行及运行程序

如何从项目中删除所有 .pyc 文件?

python学习笔记(模块初识pyc和PyCodeObject是什么)