如何在 Spyder IDE 中运行和调试单元测试

use*_*622 5 python debugging unit-testing spyder

我有一个名为 AllTests.py 的 python 文件,如下所示:

import unittest
from SomeWonderfulTest import SomeWonderfulTestCase

def runAllTestsNow():
    theTestSuite = unittest.TestSuite()
    theTestSuite.addTest(unittest.makeSuite(SomeWonderfulTestCase)
    return theTestSuite

if __name__ == "__main__":
    unittest.main(defaultTest='runAllTestsNow')
Run Code Online (Sandbox Code Playgroud)

我可以在命令行中运行它,如下所示:

python -m unittest AllTests
Run Code Online (Sandbox Code Playgroud)

但是,我想使用 Spyder IDE 来调试一些问题。我知道要在 Spyder 中指定命令行选项,我可以转到“运行”->“常规设置”->“命令行选项”。但是,当我尝试将“-m unittest”放入这些选项时,我收到一条错误消息“选项 -m 无法识别”。它似乎试图将参数发送到 AllTests.py 文件而不是 python。

如何设置 Spyder 来调试这些单元测试?

Del*_*Del -1

所以我对 Spyder 相当陌生,因为我们使用 Visual Studio 进行开发,但原理看起来很相似。

因此,我们的工作方式如下:

IDE 是您用来进行开发的界面。(你的情况是 Spyder,我的情况是 VS。)

Anaconda 是(我的)Python 环境,它读取并执行您编写的 python 脚本。这将为您提供解释器窗口等。IDE 使用 Python 环境来运行您的脚本。

您可以通过几种不同的方式运行测试。

您已经创建了一个名为 AllTests.py 的包装类/方法,它是一个 python 脚本。

这个 AllTests.py 脚本可以直接在控制台中运行,正如您在问题中概述的那样。

您还可以像运行任何其他脚本一样运行 AllTests.py 脚本,如卡洛斯所述。

您还可以在 IDE(Spyder / VS / 等)中安装一个插件,它解释所有 UnitTest 类,并以可视方式显示它们,而不是使用命令行。测试资源管理器(在 VS 中称为)或替代插件将查看您的代码,并找到所有测试,以各种不同的方式将它们分组在一起,允许您按名称/组/等执行它们,并为您提供有关测试及其输出的更多信息。(执行时间、通过/失败输出等)

我为 Spyder 找到的一个在这里: https ://pypi.python.org/pypi/spyder-unittest

不知道好不好用,因为我没用过。这里的其他人可能能够评论它的能力/性能。

下面是 Visual Studio 测试资源管理器的屏幕截图:

VS 测试资源管理器

根据您的要求和开发实践,此测试插件可能是您更好的选择。

我希望这有一些帮助。

  • 抱歉,这个答案没有解决这个问题,因为我无法从您对 VS 的解释中学习如何使用 Spyder IDE。 (2认同)