provision-ops / yaml-tests
插件,用于从 YML 文件运行命令并将其传递给 GitHub 提交状态 API。
Requires
- composer-plugin-api: ^1.1
- ext-json: *
- knplabs/github-api: ~2.11
- php-http/guzzle6-adapter: ^1.1
- provision-ops/power-process: 1.4.0-rc2
- teqneers/php-stream-wrapper-for-git: ^2.0
- vlucas/phpdotenv: ~2
Requires (Dev)
- dev-master
- 1.13.1
- 1.13.0
- v1.12.0
- 1.11.1
- 1.11.0
- 1.10.1
- 1.10.0
- 1.9.0
- 1.8.1
- 1.8.0
- 1.7.0
- 1.6.2
- 1.6.1
- 1.6.0
- 1.5.2
- 1.5.1
- 1.5.0
- 1.4.0
- 1.3.1
- 1.3.0
- 1.2.2
- 1.2.1
- 1.2.0
- 1.1.6
- 1.1.5
- 1.1.4
- 1.1.3
- 1.1.2
- 1.1.1
- 1.1.0
- 1.0.1
- 1.0.0
- dev-dependabot/add-v2-config-file
- dev-dependabot/composer/vlucas/phpdotenv-4.2.0
- dev-dependabot/composer/knplabs/github-api-2.19.0
- dev-dependabot/composer/squizlabs/php_codesniffer-3.5.8
- dev-github-actions
- dev-test-github-comment
- dev-ansi-remover
- dev-github-comments
- dev-update-dependencies
- dev-composer-update-383f1886ebc58331dd1120093aef9191
- dev-groups
This package is auto-updated.
Last update: 2024-08-29 05:22:45 UTC
README
Yaml Tests 是一个简单的 composer 插件,使得定义和运行一系列测试尽可能简单。
该插件提供了一个 composer 命令,该命令简单地读取一个 YML 文件并将这些行作为进程运行。
输出以易于阅读的方式呈现,如果单个进程失败,则返回适当的退出代码。
它可以是“本地”安装(包含在您的 composer.json 文件中)或“全局”安装(安装到全局的“composer”命令中)。
安装
将 yaml-tests
保留在您的 composer.json
中(本地安装)是操作最稳定的方式,因为版本已锁定。
本地安装
cd my-composer-project
composer require provision-ops/yaml-tests
全局安装
composer global require provision-ops/yaml-tests
要确认命令已安装,请请求帮助
composer yaml-tests --help
GitHub 集成
如果您将 GitHub Token 传递给 yaml-tests
,则它将发送测试结果作为“提交状态”指标。
有 3 种方法将 GitHub Token 传递给 YamlTests
-
使用
--github-token
命令行选项。在 CI 中不要使用此选项,否则可能会在日志中暴露您的 GitHub Token。 -
设置 GITHUB_TOKEN 环境变量。这在 Docker 中很简单,但如果您的测试在不同环境中运行,可能会很具挑战性。
-
推荐:在您的仓库或用户的家目录中创建一个
.env
文件GITHUB_TOKEN=abcdefg
此目录中有一个
.env.example
文件,您可以使用它作为示例。
编写测试
创建 tests.yml 文件
默认情况下,composer yaml-tests
命令会在项目根目录中查找 tests.yml 文件。您也可以使用 --tests-file
选项传递路径。
tests.yml
文件被读取为简单的命令集合。键可以是任何字符串,只要它在测试套件中是唯一的。
test/dir: pwd test/environment: env
您还可以在列表中包含命令
lint: - find src -name '*.php' -print0 | xargs -0 -n1 php -l - find web/modules/custom -name '*.php' -print0 | xargs -0 -n1 php -l - find tests/src -name '*.php' -print0 | xargs -0 -n1 php -l
您可以为每个测试包含一个描述,例如
debug: command: env description: Current Environment
tests.yml 中的命令
Yaml Tests 的工作方式类似于 Composer Scripts:如果您的项目在 composer.json
中设置了 config.bin-dir
,当运行脚本或其他命令时,Composer 将自动将此目录添加到 PATH。
例如,您可以在 composer 脚本或 tests.yml
中包含 PHPUnit 并调用它,而不需要指定完整的路径。
composer.json
:
{ "config": { "bin-dir": "bin/" }, "require": { "provision-ops/yaml-tests": "^1.1", "phpunit/phpunit": "^8.1" }, "scripts": { "test": [ "which phpunit", "phpunit --version" ] } }
在 composer.json
中包含 scripts.test
部分将创建一个名为 composer test
的 composer 命令。
tests.yml
:
test/debug: - which phpunit - phpunit --version
如果您只想维护一组脚本,您可以在 tests.yml
中引用 composer 脚本。
tests.yml
:
test/debug: composer test
运行测试
一旦放置了 tests.yml
文件,并且可用了 composer yaml-tests
命令,您就可以触发测试运行。
干运行与正常运行
此插件还旨在将这些测试作为“提交状态”传递到 GitHub 上。这允许我们将结果标记到特定的提交,标记为通过或失败。
如果未设置环境变量 GITHUB_TOKEN
或命令行选项 --github-token
,则将强制执行 --dry-run
选项。
如果已设置令牌但不想将测试结果发布到 GitHub,请使用 --dry-run
选项。
运行 composer yaml-tests
或,就像所有 composer 命令一样,您可以使用快捷键如 compose y
。
composer yaml-tests
输出将类似于以下内容
最后您将得到一个像这样的精美摘要
Yaml-Tests 可执行文件
现在有一个 "bin" 目录用于 yaml-tests,允许命令独立运行。
如果您需要 provision-ops/yaml-tests,您将在 bin-dir
中看到一个指向 yaml-tests
的链接。