自动交通灯/信号/交通信号灯GUI,用于在测试驱动开发(TDD)期间显示状态,主要用于编码道场。
项目描述
|
|
|
|
|
|
|
它做什么?
当某个文件被创建/修改/删除时,运行测试命令,并在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 list 或 pip 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 添加到系统路径,您应该将其添加到任何路径,以便使用 python、pip(以及之后的 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.exe、pipA.exe 和 pipA.B.exe,其中 A.B 是 Python 版本(例如 2.7 或 3.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 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f1da3e0e946ad56d21a52a76320e755d57d48fd12e9a40ac2cbf0984cfe58d28 |
|
MD5 | ab58123ebc5aab15ca8b5d303026132a |
|
BLAKE2b-256 | ffd42753dde06eb76760ab4751d137fd12422d6326ee0c01fd8bc9e7d591ebf0 |
dose-1.2.3-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3669dbb36325dad5d6ce108446eeb60ee230961830bc866d445ae989824fb1fc |
|
MD5 | 398faadb96e03772c7101df8c7571b1a |
|
BLAKE2b-256 | 47d4f9a5c0fe435e5f089b748945a1bc2a814af23e87c54692797a71e562b25d |
dose-1.2.3-py2.py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d7f4b147b437651db5271070b52ce150abd0062ecf18836d0266f034c5c9e896 |
|
MD5 | 4047a13f80144671023b214de4d6b503 |
|
BLAKE2b-256 | 29f2e927e7eda28554df5e4788194f704c6678dfabe614dae3e202bff80491b2 |