测试 TLJH#

单元测试和集成测试是 TLJH 的核心部分,与代码和文档一样重要。它们有助于验证代码按预期工作,并在发生更改时继续这样做。它们还有助于以精确的术语传达我们对代码的期望。

集成测试#

TLJH 是一个发行版,其主要价值在于我们对要使用的组件以及它们如何组合在一起所做出的许多有见地的选择。集成测试非常适合测试各种组件是否能够协同工作并按预期工作。因此,我们编写了大量的集成测试,并投入了比单元测试更多的精力。

所有集成测试都在每个 PR 和合并的 GitHub Actions 中运行,确保我们不会长时间出现测试失败。

集成测试位于 git 存储库中的 integration-tests 目录中。 py.test 用于编写集成测试。每个文件应包含可以在相同 TLJH 安装上按任何顺序运行的测试。

在本地运行集成测试#

您需要安装 docker,并且运行集成测试的用户无需使用 sudo 即可调用它。

然后,您可以使用以下命令运行测试:

.github/integration-test.py run-test <name-of-run> <test-file-names>
  • <name-of-run> 是测试的标识符 - 您可以选择任何您想要的名称

  • <test-file-names>> 是应一次运行的测试文件(位于 integration-tests 下)的列表。

例如,要运行所有基本测试,您将编写:

.github/integration-test.py run-test basic-tests \
   test_hub.py \
   test_proxy.py \
   test_install.py \
   test_extensions.py

这将在三个文件中运行测试,针对相同的 TLJH 安装,并报告错误。

如果您想使用自定义 pip 规范为引导脚本运行测试,可以使用 --bootstrap-pip-spec 参数

.github/integration-test.py run-test <name-of-run> <test-file-names> \
   --bootstrap-pip-spec="git+https://github.com/your-username/the-littlest-jupyterhub.git@branch-name"