跳转到主要内容

自动交通灯/信号/交通信号灯GUI,用于在测试驱动开发(TDD)期间显示状态,主要用于编码道场。

项目描述

https://github.com/danilobellini/dose/raw/v1.2.3/images/screenshot_linux.png
  • 语言:Haskell

  • 使用Hspec进行测试

  • Arch Linux

  • Dose在Python 2.7.12上运行

  • wxPython Phoenix 3.0.3.dev2472+78ae39a (gtk2)

https://github.com/danilobellini/dose/raw/v1.2.3/images/screenshot_osx.png
  • 语言:Shell脚本

  • 使用roundup进行测试

  • Mac OS X 10.11.6 (El Capitan)

  • Dose在Python 3.5.2上运行

  • wxPython Phoenix 3.0.3.dev2487+3b85464 (osx-cocoa)

https://github.com/danilobellini/dose/raw/v1.2.3/images/screenshot_windows.png
  • 语言:Python

  • 使用pytest进行测试

  • Windows 7 Home Premium SP1

  • Dose在Python 2.7.12上运行

  • wxPython Classic 2.8.12.1 (msw-unicode)

https://github.com/danilobellini/dose/raw/v1.2.3/images/screenshot_cygwin.png
  • 语言:C

  • 使用自定义测试器进行测试

  • Cygwin 2.876 (Windows)

  • Dose在Python 2.7.10上运行

  • wxPython Classic 3.0.2.0 (gtk2)

它做什么?

当某个文件被创建/修改/删除时,运行测试命令,并在GUI中显示返回值。

有3种状态

  • 红色:上次测试任务失败/出错(它没有返回零)

  • 黄色:正在运行测试作业

  • 绿色:上次测试作业通过(返回值为零)

测试作业的输出写入标准输出,因此应出现在调用Dose的终端/控制台中。同样适用于标准错误,其文本应显示为红色。

语法/示例

只需调用 dose TEST_COMMAND,其中 TEST_COMMAND 是您在终端/控制台/shell中运行的测试套件的命令。Dose是用Python编写的,但测试命令可以是任何shell命令。

提示(颜色):测试命令中的任何ANSI转义代码(例如颜色)也会发送到底层控制台的标准流(Linux、Mac OS X和Cygwin)或通过colorama转换为Windows控制台句柄API调用(Windows)。换句话说,颜色被启用。例如,在具有tox.ini的tox + py.test Python项目中,其中commands = py.test {posargs},您可以使用dose tox -- --color=yes强制py.test着色。

提示(shell):您可以通过引用整个命令在测试命令中使用shell管道,例如dose "cat tests.txt | verify.sh"

它监视什么?

使用watchdog包,Dose递归地监视工作目录的文件创建/修改/删除事件。

监视的目录是Dose被调用的当前工作目录。您可以从GUI中更改它。测试命令在相同的目录中调用。

有一个可定制的忽略模式,以避免在临时/编译文件上发生不必要的检测。

在测试期间,有效事件会终止(SIGTERM)测试作业以重新启动它。在启动/生成测试作业子进程之前有一个10毫秒的延迟,在此期间它至少保持50毫秒的生命周期,然后才能被终止。多个事件被视为单个事件处理,以避免生成/终止超过所需的作业。

监视器中有循环/重复检测:重复事件不会终止测试作业。修改相同的文件两次,第二次修改将被忽略,除非它在测试作业完成后发生。

提示(更改目录):您可以使用cd PATH && TEST_COMMAND作为测试命令来监视一个目录并在另一个目录中调用命令,例如dose "cd toxinidir && tox"

GUI控件

在Linux / Windows上

  • 拖动:移动

  • 按住Ctrl拖动:调整大小

  • 按住Shift拖动:控制透明度

  • 双击:启动或停止监视器(可以终止测试作业)

右击显示更多选项。

在Mac OS X上

  • 拖动:移动

  • 按住⌘拖动:调整大小

  • 按住⇧拖动:控制透明度

  • 双击:启动或停止监视器(可以终止测试作业)

右击(或Ctrl + 鼠标点击)显示更多选项。

安装

Dose有一些要求

  • Linux、OS X、Windows或Cygwin(Windows)

  • Python(2或3)带有pip/wheel/setuptools

  • PyPI软件包(自动安装)

    • watchdog

    • docutils

    • colorama

    • wxPython 2.8、3.0(经典或凤凰)或4+(凤凰)

所有这些软件包都使用pip安装,包括wxPython,但您可能需要/想要使用操作系统的软件仓库中的构建软件包来安装它,因此以下为旧版本的wxPython(在4.0版本之前)创建的文档,被保留在这里作为文档的一部分。

在Python 3上,需要wxPython Phoenix(因为wxPython Classic需要Python 2,modus tollens)。即使在Python 2上,Phoenix通常也更容易安装,因为它可以直接通过pip在任何平台或Python版本上安装。

pip install wxPython

wxPyWiki 有一个详细的页面介绍了如何安装 wxPython,其中包含了 Phoenix 安装命令的来源。该链接还包含了关于如何安装 wxPython 经典版本的详细信息。

如果还不够,下面提供了关于如何在每个平台/环境/系统上安装 Dose 及其依赖的详细信息。

使用 pip/wheel/setuptools 安装 Dose

您应该使用 pip 来安装,它会从 PyPI 获取 Dose 轮文件(推荐)

pip install dose

要从源分发安装(例如,在克隆此存储库之后),您可以使用 pip(推荐)

pip install .

轮文件

python setup.py bdist_wheel
wheel install dist/*.whl

或者直接使用 setuptools(不推荐)

python setup.py install

使用 pip 卸载 Dose 并保留其依赖项

pip uninstall dose

其他有用且不言自明的命令是

pip install --upgrade dose
pip install --force-reinstall dose

Dose 应保持更新。要检查已安装的 Dose 版本,您可以使用 pip listpip freeze。如果没有 pip,您可以从 dose.__version__ 变量中检查版本

python -c "import dose ; print(dose.__version__)"

Python 虚拟环境

如果您希望在 Python 虚拟环境中安装 Dose 而不是系统安装,您应该

  • 使用 pip 安装 wxPython Phoenix(推荐);

  • 在已安装某些 wxPython 版本的系统上使用具有 --system-site-packages 选项的虚拟环境创建。

在 Linux / Mac OS X / Cygwin 上,这将创建一个 venv27 目录,其中包含一个新的虚拟环境,可以访问系统的 site-packages 库目录,即已安装的包

virtualenv --system-site-packages -p python2.7 venv27

在 Windows 上,您只需将 python2.7 替换为您自己的 python.exe 文件。如果您希望虚拟环境具有独立库,则应删除 --system-site-packages

激活它(Linux / Mac OS X / Cygwin)

source venv27/bin/activate

激活它(Windows)

venv27/Scripts/activate.bat

之后,您应该在激活的虚拟环境中使用 pip/wheel/setuptools 安装 Dose。

如果您的 Python 分发中没有虚拟环境,它可以使用以下命令安装

pip install virtualenv

Arch Linux 的要求

对于简单安装,它可以在 AUR 中找到。

这个发行版不包含 /usr/bin/pip 脚本,因此您应该使用 python2 -m pip(Python 2)或 python -m pip(Python 3)而不是仅使用 pip。顺便说一下,在这个 Linux 发行版中,python 表示 Python 3,只有 python2 表示 Python 2,除非您在虚拟环境中。以下命令应使用 sudo 调用。

安装 pip 时,您无需担心 Python 解释器是否已安装在您的系统中,因为包管理器会在未安装的情况下为您安装 python 作为依赖项。要在 Python 3 上安装 pip 和 wxPython Phoenix 4

pacman -Sy python-pip python-wxpython

可以通过 pip 安装 wxPython Phoenix 快照。另一方面,要在 Python 2 上安装 pip 和 wxPython Classic 3.0

pacman -Sy python2-pip python2-wxpython3

如果您希望在虚拟环境中安装 Dose,您应该使用 pacman 安装 python-virtualenv(Python 3)或 python2-virtualenv(Python 2)包,然后按照虚拟环境的说明进行。

Ubuntu/Debian/MINT Linux 上的要求

在 Python 3 上,您应该使用 pip3 而不是 pip,除非您在虚拟环境中。以下命令应使用 sudo 调用。您还可以使用类似 synaptic 的 APT 图形界面安装所描述的包(“install”之后的名称)。这些发行版通常自带 Python,但安装 pip 时 Python 本身会作为依赖项安装。在调用安装命令之前,请记住

apt-get update

安装 Python 3 上的 pip

apt-get install python3-pip

wxPython Phoenix 快照可以通过 pip 安装。要在 Python 2 上安装 pip 和 wxPython Classic 2.8

apt-get install python-pip python-wxgtk2.8

如果您想在 virtualenv 中安装 Dose,应从 APT 安装 python-virtualenv(Python 2)或 python3-virtualenv(Python 3)软件包,然后按照 virtualenv 指示操作。如果这些不可用,您应使用 pip 从 PyPI 安装 virtualenv 软件包。

Mac OS X 的要求

这里讨论的每件事都在控制台中发生,您可以通过按 Command (⌘) + Space 并输入 Terminal 来打开 Spotlight。推荐(且更简单)的方式是通过 Homebrew 安装需求,即使是在 Mac OS X 10.11(El Capitan)上。另一个选择是直接从 Python 官方网站 的软件包安装 Python,但该安装过程在此未描述。

Mac OS X 10.11 (El Capitan) 的 Python

这是一个没有 Homebrew 的安装过程,使用随 Mac OS X 10.11 (El Capitan) 一起提供的 Python 解释器。它包含 Python 2.7,但不包含 pip。您可以使用以下命令安装 pip:

curl https://bootstrap.pypa.io/get-pip.py | sudo python

如果您想通过 pip 安装 wxPython Phoenix,而不收到 OSError: [Errno 1] Operation not permitted: ...,您必须暂时禁用 系统完整性保护,但这可能是您不想做的事情。同样,Dose 也会出现这种情况,但为了避免这个问题,您可以直接从其 setup.py 安装 Dose,而不是使用 pip/wheel。

另一方面,如果您想安装 wxPython Classic 3.0,您应直接从 wxPython 官方网站 获取“Cocoa”Mac OS X 二进制软件包。但这还不够,因为这个操作系统版本不支持软件包结构。按照 DaviXX 关于 OS X 上 wxPython 的博客文章 的说明,您应该

  • 在 Finder 中打开(双击)下载的 dmg 文件;

  • 使用鼠标右键(或 Ctrl + click)单击 wxPython3.0-osx-cocoa-py2.7.pkg 文件,然后单击 显示软件包内容

  • Contents 目录拖到您的桌面上,然后在同一个 Finder 窗口中弹出以“wxPython”命名的设备;

  • 打开 Contents,然后打开 Resources,在那里您应将

    • preflight 重命名为 preinstall

    • postflight 重命名为 postinstall

  • 打开(双击)wxPython3.0-osx-cocoa-py2.7.pax.gz,应该出现一个 usr 目录;

  • 在同一个 Resources 目录中创建两个目录,名称分别为

    • pkg_root

    • scripts

  • 将(拖动)

    • usr 拖到 pkg_root

    • preinstall 拖到 scripts

    • postinstall 拖到 scripts

  • 在终端中,输入以下两个命令(注意,您应使用 ~ 符号,而不是 ˜ 符号)

    cd ~/Desktop/Contents/Resources
    pkgbuild --root ./pkg_root --scripts ./scripts \
             --identifier com.wxwidgets.wxpython \
             ~/Desktop/wxPython3.0-osx-cocoa-py2.7-repackaged.pkg

等待直到终端显示 已写入软件包 信息。现在您可以删除 Contents 目录和下载的 dmg 文件,只需在您的桌面上打开(双击)wxPython3.0-osx-cocoa-py2.7-repackaged.pkg 文件即可安装 wxPython Classic 3.0。上述博客文章做了同样的操作,但使用的是命令行方法。

Homebrew

在终端中只需一条命令即可安装 Homebrew

/usr/bin/ruby -e "$(curl -fsSL \
  https://raw.githubusercontent.com/Homebrew/install/master/install)"

在终端中调用安装命令之前,请记住

brew update

要安装 Python 3(已经自带 pip,因此今后称为 pip3 来指代此 Python 版本)

brew install python3

在那里,您可以通过 pip(在安装命令中将 pip 替换为 pip3)安装 wxPython Phoenix。

要安装 Python 2(自带 pip)和 wxPython Classic 3.0

brew install python wxpython

Windows 上的要求

在 Windows 上,您可以从某些发行版或直接从Python 官方网站的二进制包中安装 Python,这里所述的流程使用后者。

安装过程中会要求将 Python 添加到系统路径,您应该将其添加到任何路径,以便使用 pythonpip(以及之后的 dose)。建议您保持安装目录简单(例如,tox 查找 Python 解释器的路径:Python 2.7 的 C:\Python27 和 Python 3.5 的 C:\Python35),因为 python.exe 既没有被重命名也没有被复制到特定版本的名字中,如果需要安装多个 Python 版本,这会成为一个问题。建议的路径是 Python 2.7 的默认路径,但如果是 Python 3.5,您必须选择 自定义安装 来更改路径。

Windows 的 Python 二进制包已经自带 pip,作为 3 个可执行文件在安装 Python 的路径下的 Scripts 子目录中:pip.exepipA.exepipA.B.exe,其中 A.B 是 Python 版本(例如 2.73.5)。

安装 Dose 及其依赖项以及之后使用 Dose 都需要终端。您可以使用 Windows PowerShell(《span class="docutils literal">powershell.exe》)或《span class="docutils literal">Command Prompt》(《span class="docutils literal">cmd.exe》),可以通过按下 Windows + R 并输入可执行文件名(不带 .exe 后缀/扩展名)来调用它们。

如果您想安装 wxPython Phoenix,可以使用之前描述的命令通过 pip 轻松安装,您只需注意路径:您可以通过尝试调用它或在 PowerShell 中查看 $env:path 是否包含 Python 脚本目录(例如 C:\Python27\Scripts)来查看 pip 是否在路径中。如果不是,在调用 pip 之前,您应该前往该目录,例如:

cd \Python27\Scripts
pip install dose

在 Python 2.7 上,您可以从wxPython 官方网站的包中安装 wxPython Classic。如果您按照建议路径安装了 Python,安装程序应该能够检测到安装路径。如果您在 C:\Python27 上安装了 Python(Python 安装路径和 python.exe 所在的目录),那么您应该在 C:\Python27\Lib\site-packages 上安装 wxPython。如果 Python 安装在其他位置,应相应地添加 \Lib\site-packages 后缀。当提示时,请使用完整安装(即,勾选所有选项)。

Cygwin(Windows)上的要求

如果您只想在 Windows 上运行 Dose,请阅读上一节。 Cygwin 是另一个平台,它运行在 Windows 上并拥有来自 Linux 的许多资源。在 Cygwin 上,Python 资源是按照在 POSIX 系统中可用的资源进行记录的。

要在 Cygwin 上安装 Python 2 和 wxPython Classic 3.0,您必须从 Cygwin 安装程序中安装这些软件包(以及安装程序检测到的依赖项)

  • Net/curl

  • Python/python

  • Libs/python-wx3.0

  • X11/xinit

  • X11/xorg-server

打开 开始菜单 -> Cygwin-X -> XWin 服务器,它将只是闪一下然后消失,但它的 X 和 C 图标应该出现在任务栏中。单击 C 图标 -> 系统 -> Cygwin 终端 打开一个可以在 Windows 中显示 X GUI 的终端。

要在 Cygwin 终端安装 pip,应使用以下命令

curl https://bootstrap.pypa.io/get-pip.py | python

激活 wxPython Classic 3.0(即,将其作为默认 wxPython 安装)

cd /lib/python2.7/site-packages
echo wx-3.0* > wx.pth

有关更多信息,请参阅 CHANGES.rst 文件。


版权所有 (C) 2012-2022 Danilo de Jesus da Silva Bellini

项目详情


下载文件

下载适用于您平台的应用程序。如果您不确定选择哪个,请了解有关 安装软件包 的更多信息。

源代码分发

dose-1.2.3.tar.gz (368.0 kB 查看哈希值)

上传时间

构建分发

dose-1.2.3-py3-none-any.whl (376.4 kB 查看哈希值)

上传时间 Python 3

dose-1.2.3-py2.py3-none-any.whl (376.4 kB 查看哈希值)

上传时间 Python 2 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面