【问题标题】:Is there a gui for nosetests是否有用于鼻子测试的 gui
【发布时间】:2017-03-11 04:15:41
【问题描述】:

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

它确实可以完成这项工作,但它不能很好地直观地查看哪些测试正在运行或正在破坏。

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

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

有什么建议吗?

【问题讨论】:

    标签: user-interface nosetests


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

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

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

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

        pyuic4 -x interface.ui -o interface.py

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

        【讨论】:

          【解决方案4】:

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

          我不确定 OP 的“向下钻取”是什么意思,但就我个人而言,我需要的只是测试输出中的故障回溯,当然,每当测试失败时都会显示。

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

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

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

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-09-02
            • 1970-01-01
            • 2012-10-03
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多