测试指南¶
欢迎来到 ansible-pylibssh 测试指南!
此页面包含有关如何在本地测试 ansible-pylibssh 以及有关如何实现自动化测试和 linting 的一些说明。
强制性工具¶
所有构建和测试流程都使用以 tox 为中心的流程。因此,首先,让我们安装它
$ python -m pip install 'tox >= 3.19.0' --user
注意
这将在 user-global site-packages 中安装 tox。为了使其可发现,您可能需要将 export PATH="$HOME/.local/bin:$PATH" 添加到您的 ~/.bashrc
或 ~/.zshrc
中。
提示
虽然上面的示例使用 pip,但您也可以通过您的操作系统包管理器(例如 apt、dnf、emerge、packman、yum、zypper 等)来安装 tox。
重要的是至少要有 3.8.0 版本,因为它将允许 tox 仅为 ansible-pylibssh 自动预配一个更新版本的自身。
Tox 将负责 Python 依赖项,但您需要使外部生态系统依赖项可用。
ansible-pylibssh 的核心依赖项是 libssh。ansible-pylibssh 与其链接,因此您的系统上必须存在开发头文件才能成功构建。
下一个外部构建时依赖项是 Cython
以及 using it
需要存在 GCC。请查阅您的操作系统的文档,了解如何将其安装到您的机器上。
另请参见
- 安装 ansible-pylibssh
从源代码安装
获取源代码¶
在您整理好工具链后,获取 ansible-pylibssh 的源代码
$ git clone https://github.com/ansible/pylibssh.git ~/src/github/ansible/pylibssh
$ # or, if you use SSH:
$ git clone git@github.com:ansible/pylibssh.git ~/src/github/ansible/pylibssh
$ cd ~/src/github/ansible/pylibssh
[dir:pylibssh] $
注意
以下所有命令都假定工作目录为 Git 检出文件夹(在示例中为 ~/src/github/ansible/pylibssh
)
运行测试¶
要在当前 Python 解释器下运行测试,请运行
[dir:pylibssh] $ python -m tox
如果您想针对其他 Python 版本,请执行
[dir:pylibssh] $ python -m tox -e py38
持续集成¶
在 CI 中,测试的执行方式略有不同。首先,Python 包发行版使用以下命令构建
[dir:pylibssh] $ python -m tox -e build-dists
然后,它们在不同的操作系统和 CPython 版本组合的多个作业矩阵中进行测试
[dir:pylibssh] $ python -m tox -e test-binary-dists
质量和健全性¶
此外,还有一个单独的工作流程运行 linting 相关的检查,可以在本地重现,如下所示
[dir:pylibssh] $ python -m tox -e build-docs # Sphinx docs build
[dir:pylibssh] $ python -m tox -e lint # pre-commit.com tool
持续交付¶
除了测试和 linting 之外,ansible-pylibssh 还设置了 GitHub Actions 工作流程 CI/CD,以便在测试通过后发布这些相同的 Python 包发行版。
来自 devel
的提交将发布到 https://test.pypi.org/project/ansible-pylibssh/,标记的提交将发布到 https://pypi.ac.cn/project/ansible-pylibssh/。
此外,如果您想针对未发布版本的 ansible-pylibssh 测试您的项目,您可能想要使用 nightly 版本。
我们会在标记和推送到 devel 时发布 nightly 版本。它们托管在由 dumb-pypi 生成的基于 GitHub Pages 的索引上。
Web 视图位于 https://ansible.github.io/pylibssh/。
$ pip install \
--extra-index-url=https://ansible.github.io/pylibssh/simple/ \
--pre \
ansible-pylibssh