跳转到主要内容

基于subunit构建的并行Python测试执行器

项目描述

CI Testing status Code coverage Latest Version License:

概述

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 (113.2 kB 查看哈希值)

上传时间

构建分布

stestr-4.1.0-py3-none-any.whl (118.0 kB 查看哈希值)

上传时间 Python 3

支持者

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