有没有适用于nosetests的GUI界面?

6

我最近几个月一直在使用nosetests来运行我的Python单元测试。

它确实能够胜任工作,但是它并不适合提供测试工作的视觉化展示,无法清晰地展示哪些测试正在工作或者失败了。

我曾经使用过其他几个基于GUI的单元测试框架,它们可以提供一个视觉快照,展示你的单元测试状态,并且提供钻取功能以获取详细的错误信息。

Nosetests将大部分信息都输出到控制台,开发人员需要自己筛选详细信息。

有什么推荐吗?

4个回答

4
你可以使用rednose插件来为控制台着色。有了它,视觉反馈会更好。

2
我使用了Trac和Bitten来进行持续集成,这是一个相当复杂的设置,并需要大量时间来阅读说明、设置和维护,但我可以得到漂亮的可视化报告,包括失败的测试和错误信息以及随时间变化的失败测试、pylint问题和代码覆盖率的图形。 Bitten 是Trac的一个持续集成插件。它具有主从架构。Bitten主程序与Trac集成并一起运行。Bitten从程序可以在任何与主程序通信的系统上运行。它会定期轮询主程序以获取构建任务。如果有待处理任务(某人最近提交了东西),主程序将向从程序发送“构建配方”,类似于ant的build.xml文件,从程序会按照配方执行并发送结果。配方可以包含指令,如“从那个存储库检出代码”,“执行此shell脚本”,“在此目录中运行nose测试”。构建报告和统计数据会显示在Trac中。

0

我知道这个问题已经有3年了,但我目前正在开发一个GUI,以使nosetests在我参与的项目中更容易使用。

我们的项目使用 PyQt,它让这个GUI变得非常简单,因为它提供了创建接口所需的所有内容。虽然我刚开始使用Python不久,但相当容易掌握,因此如果您知道该怎么做,并且拥有足够的时间,它将是完美的选择。

您可以使用以下命令将在PyQt Designer中创建的.UI文件转换为Python脚本:

pyuic4 -x interface.ui -o interface.py

您可以从这里获取一些很好的教程,以了解PyQt的感受。希望能对某些人有所帮助 :)


0

我想在我的编辑器旁边打开第二个终端,其中只运行一个循环,每当任何文件更改时重新运行nosetests(或任何测试命令,例如纯粹的unittests)。然后,您可以保持焦点在编辑器窗口中,同时看到测试输出每次点击编辑器中的“保存”时更新。

我不确定OP所说的“具体了解”,但就个人而言,我从测试输出中所需的全部仅是失败的回溯,这当然会在测试失败时显示出来。

当您编写的代码和测试很好时,这特别有效,以便您的绝大多数测试只需要几毫秒即可运行。我可能会像上面描述的那样在编辑或调试时运行这些快速单元测试,然后在提交之前手动运行任何长时间运行的测试。

您可以使用Bash'watch'手动重新运行测试(但这只是每隔X秒运行一次它们。这很好,但并不足以使我感到满意。)

另外,我编写了一个快速的Python包'rerun',它会轮询文件系统的更改,然后重新运行您给出的命令。轮询更改并不理想,但很容易编写,完全跨平台,如果您告诉它每0.25秒轮询一次,则相当迅速,即使在大型项目(例如Python源代码树)中也不会导致任何明显的延迟或系统负载,并且即使在复杂情况下也能正常工作(见下文)。 https://pypi.python.org/pypi/rerun/

第三种选择是使用更通用的“等待文件系统更改”的程序,如“watchdog”,但这对我的需求来说似乎太重量级了,而像这样监听文件系统事件的解决方案有时不会按照我预期的那样工作(例如,如果Vim通过在其他地方保存tmp文件,然后将其移动到正确位置来保存文件,则有时发生的事件不是您所期望的事件)。因此,我选择了“rerun”。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接