基于subunit构建的并行Python测试执行器
项目描述
您可以在以下位置查看完整的渲染文档: http://stestr.readthedocs.io/en/latest/
项目的代码在Github上: https://github.com/mtreinish/stestr
概述
stestr 是一个并行 Python 测试执行器,旨在使用多个进程来分割测试套件的执行,以执行 unittest 测试套件。它还会存储所有测试运行的历史记录,以帮助调试失败并优化调度器以提高速度。为了实现这一目标,它使用 subunit 协议来简化多个工作进程的结果流和存储。
stestr 最初是从 testrepository 项目分叉出来的。但与 testrepository 不同,它不是用于任何使用 subunit 的测试执行器的接口,而是专注于成为 Python 项目的专用测试执行器。虽然 stestr 最初是从 testrepository 分叉出来的,但它与 testrepository 不兼容。在较高层面上,两个项目之间操作的基本概念是共享的,但实际用法并不完全相同。
安装 stestr
stestr 通过 PyPI 提供,因此您只需运行以下命令即可将 stestr 安装到您的系统中:
pip install -U stestr
以在您的系统中获取 stestr。如果您需要使用 stestr 的开发版本,可以克隆存储库并使用以下命令本地安装:
git clone https://github.com/mtreinish/stestr.git && pip install -e stestr
这将使 stestr 在您的 Python 环境中以可编辑模式安装,以便进行本地开发。
使用 stestr
安装 stestr 后,使用它来运行测试非常简单。您首先需要为您的项目创建一个 .stestr.conf 文件。该文件用于告诉 stestr 哪里可以找到测试以及有关测试运行的基本信息。该文件内容的简单示例如下:
[DEFAULT] test_path=./project_source_dir/tests
它只是告诉 stestr 用于测试发现的目录的相对路径。这与标准 unittest 发现 中的 --start-directory 相同。
或者,如果您使用 stestr 与 tox,可以将您的 stestr 配置集成到 tox.ini 文件的 stestr 部分,例如
[stestr] test_path=./project_source_dir/tests
在配置好 stestr 后,您就可以开始使用 stestr 来运行测试了。要运行测试,只需使用以下命令:
stestr run
它将首先在当前工作目录中的 .stestr/ 创建一个结果存储库,然后执行测试发现中找到的所有测试。如果您只想运行单个测试(或模块)并想避免测试发现的开销,可以使用 --no-discover/-n 选项来指定该测试。
有关这些命令的所有详细信息以及选项的更详细解释,请参阅 stestr 手册:https://stestr.readthedocs.io/en/latest/MANUAL.html
从 testrepository 迁移
如果您有一个正在使用 testrepository 的项目,stestr 的源存储库包含一个辅助脚本,用于将您的存储库迁移到使用 stestr。该脚本只需从 .testr.conf 文件创建一个 .stestr.conf 文件。(假设它使用标准的 subunit.run 测试命令格式)要从您的项目存储库中运行此脚本,只需调用以下命令:
$STESTR_SOURCE_DIR/tools/testr_to_stestr.py
您将创建一个 .stestr.conf 文件。
构建手册页
stestr 手册已被格式化,以便在 HTML 和 man 页面中良好呈现。HTML 输出是自动生成并发布的,地址为:https://stestr.readthedocs.io/en/latest/MANUAL.html,但 man 页面需要手动生成。为此,您需要手动运行 sphinx-build 并使用 man 页面构建器。这已在一个小脚本中自动化,该脚本应在 stestr 仓库的根目录下运行。
tools/build_manpage.sh
这将生成位于 doc/build/man/stestr.1 中的 troff 文件,该文件已准备好打包或放入系统手册页面中。
贡献指南
要浏览最新代码,请参阅:https://github.com/mtreinish/stestr。要克隆最新代码,请使用:git clone https://github.com/mtreinish/stestr.git
贡献指南文档位于:http://stestr.readthedocs.io/en/latest/developer_guidelines.html
使用 github pull requests 提交补丁。在提交 pull request 之前,请确保运行 tox 本地测试通过,这将运行测试套件以及自动化样式规则检查,就像在 CI 中一样。如果 CI 在您的更改上失败,则无法合并。
社区
除了 Github 交互之外,还有一个 stestr IRC 频道
#stestr 在 OFTC
欢迎加入,提问或讨论 stestr。
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源分布
构建分布
stestr-4.1.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 5f61c369eece63c292d13599e12aa158af7685990643f24dd6fa7fabfe34e98a |
|
MD5 | 8b280f330650ec4b350fc06f62180344 |
|
BLAKE2b-256 | 115b59a009a34bd51ca7e7cdd476bce6c6e331a78d87017bfe932cbfeeff3784 |
stestr-4.1.0-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f319326588c39528b9a69083f0be58ab68d040de2c5dbfdc784b2de028d7d293 |
|
MD5 | d6adaaf294b0c1302177424b023873ac |
|
BLAKE2b-256 | 6fd5ccd9012e62b46d0349f91a03d82b90f59433854f2d74a457a11b21f38b3b |