是否有用于鼻试的gui

时间:2009-03-12 11:01:06

标签: user-interface nosetests

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

它绝对可以完成这项工作,但是对于提供正在进行或正在进行的测试的视觉观点并不是很好。

我使用了其他几个基于GUI的单元测试框架,它们提供了单元测试状态的可视快照,并提供了向下钻取功能以获取详细的错误消息。

Nosetests将其大部分信息转储到控制台,让开发人员筛选细节。

有什么建议吗?

4 个答案:

答案 0 :(得分:4)

您可以使用rednose插件为控制台上色。它的视觉反馈要好得多。

答案 1 :(得分:2)

我已经使用Trac + Bitten进行持续集成,它设置相当复杂,需要大量时间来进行RTFM,设置然后维护所有内容,但我可以通过失败的测试和错误消息以及图表获得良好的可视化报告失败的测试,pylint问题和代码覆盖率随着时间的推移。

Bitten是Trac的持续集成插件。它具有主从架构。 Bitten master与Trac集成并一起运行。被咬的从站可以在与主站通信的任何系统上运行。它会定期轮询master以构建任务。如果有待处理的任务(有人最近提交了一些内容),master会将类似于ant的build.xml的“build recipe”发送给slave,slave会按照配方发送回结果。配方可以包含诸如“从该存储库中检出代码”,“执行此shell脚本”,“在此目录中运行nosetests”之类的指令。 然后,构建报告和统计信息将显示在Trac。

答案 2 :(得分:0)

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

我们的项目使用PyQt,这使得从这个GUI开始非常简单,因为它提供了创建接口所需的一切。我已经很久没有使用Python了,但它很容易掌握,所以如果你知道你在做什么,那么只要你有时间就会很完美。

您可以将PyQt Designer中创建的.UI文件转换为python脚本:

pyuic4 -x interface.ui -o interface.py

你可以得到一些很好的教程来了解PyQt here。希望能帮助某人:)

答案 3 :(得分:0)

我喜欢打开我的编辑器旁边的第二个终端,我只是运行一个循环,每次文件更改时都会重新运行nosetests(或任何测试命令,例如普通的旧单元测试)。然后,您可以将焦点保持在编辑器窗口中,同时每次在编辑器中点击“保存”时都会看到测试输出更新。

我不确定OP的含义是“向下钻取”,但我个人所需要的只是测试输出的故障回溯,当然只要测试失败就会显示。

当您的代码和测试编写良好时,这尤其有效,因此绝大多数测试只需要几毫秒才能运行。我可以在编辑或调试时在循环中运行这些快速单元测试,然后在我提交之前手动运行任何长时间运行的测试。

您可以使用Bash'watch'手动重新运行测试(但这只是每隔X秒运行一次。这很好,但它不够活泼让我开心。)

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

第三种选择是使用更通用的“等待文件系统更改”程序,如“看门狗”,但这对我的需求来说似乎是重量级的,这样的监听文件系统事件的解决方案有时不起作用预期的(例如,如果Vim通过在某个地方保存tmp然后将其移动到位来保存文件,那么有时会发生的事件不是您期望的事件。)因此“重新运行”。