是否有用于鼻子测试的 GUI?

问题描述 投票:0回答:4

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

它确实可以完成这项工作,但它不能很好地直观地显示哪些测试正在运行或失败。

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

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

有什么推荐吗?

user-interface nose
4个回答
4
投票

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


2
投票

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

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


0
投票

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

我们的项目使用 PyQt,这使得使用这个 GUI 开始变得非常简单,因为它提供了创建界面所需的一切。我使用 Python 的时间不长,但它很容易掌握,所以如果你知道自己在做什么,只要你有时间,它就是完美的。

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

pyuic4 -x interface.ui -o interface.py

您可以在 here 获得一些很好的教程来感受 PyQt。希望对某人有所帮助:)


0
投票

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

我不确定 OP 所说的“向下钻取”是什么意思,但我个人从测试输出中需要的只是失败回溯,当然只要测试失败就会显示它。

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.