wp-cli/scaffold-package-command

使用功能测试、完整的 README.md 和更多内容来构建 WP-CLI 命令。

安装数量: 71,726

依赖: 4

建议者: 0

安全性: 0

星标: 68

关注者: 10

分支: 19

开放问题: 10

语言:Gherkin

类型:wp-cli-package

v2.1.0 2024-05-09 09:09 UTC

This package is auto-updated.

Last update: 2024-09-09 09:49:06 UTC


README

使用功能测试、完整的 README.md 和更多内容来构建 WP-CLI 命令。

Testing Build Status CircleCI

快速链接:使用 | 安装 | 贡献 | 支持

使用

此包实现了以下命令

wp scaffold package

生成基本 WP-CLI 命令所需文件。

wp scaffold package <name> [--description=<description>] [--homepage=<homepage>] [--dir=<dir>] [--license=<license>] [--require_wp_cli=<version>] [--require_wp_cli_tests=<version>] [--skip-tests] [--skip-readme] [--skip-github] [--skip-install] [--force]

默认行为是创建以下文件

  • command.php
  • composer.json(包含包名、描述和许可协议)
  • .gitignore、.editorconfig 和 .distignore
  • README.md(通过 wp scaffold package-readme 生成)
  • 测试框架(通过 wp scaffold package-tests 生成)

除非指定 --dir=<dir>,否则命令包将放置在 WP-CLI packages/local/ 目录中。

选项

<name>
	Name for the new package. Expects <author>/<package> (e.g. 'wp-cli/scaffold-package').

[--description=<description>]
	Human-readable description for the package.

[--homepage=<homepage>]
	Homepage for the package. Defaults to 'https://github.com/<name>'

[--dir=<dir>]
	Specify a destination directory for the command. Defaults to WP-CLI's `packages/local/` directory.

[--license=<license>]
	License for the package.
	---
	default: MIT
	---

[--require_wp_cli=<version>]
	Required WP-CLI version for the package.
	---
	default: ^2.5
	---

[--require_wp_cli_tests=<version>]
	Required WP-CLI testing framework version for the package.
	---
	default: ^3.0.11
	---

[--skip-tests]
	Don't generate files for integration testing.

[--skip-readme]
	Don't generate a README.md for the package.

[--skip-github]
	Don't generate GitHub issue and pull request templates.

[--skip-install]
	Don't install the package after scaffolding.

[--force]
	Overwrite files that already exist.

wp scaffold package-tests

为您的命令生成 Behat 测试文件。

wp scaffold package-tests <dir> [--ci=<provider>] [--force]

WP-CLI 使用基于 Behat 的测试框架,您也应该使用。此命令会生成您需要的所有文件。功能测试是高质量、可维护命令的必要组成部分。Behat 作为测试框架是一个很好的选择,因为它

  • 编写新测试很容易,这意味着它们确实会被编写。
  • 测试与您的命令的交互方式与用户与您的命令的交互方式相同,并且它们以人类可读的方式描述了命令的预期工作方式。

Behat 测试位于您的项目的 features/ 目录中。当您使用此命令时,它会生成一个默认测试,如下所示

Feature: Test that WP-CLI loads.

  Scenario: WP-CLI loads for your tests
    Given a WP install

    When I run `wp eval 'echo "Hello world.";'`
    Then STDOUT should contain:
      """
      Hello world.
      """

功能测试通常遵循以下模式

  • 给定 一些背景信息,
  • 用户执行特定操作时,
  • 那么 最终结果应该是 X(以及 Y 和 Z)。

查看所有可用的定义 Behat 步骤,使用 behat -dl

Given /^an empty directory$/
Given /^an empty cache/
Given /^an? ([^\s]+) file:$/
Given /^"([^"]+)" replaced with "([^"]+)" in the ([^\s]+) file$/

此命令生成的文件包括

  • .travis.yml 是 Travis CI 的配置文件。
  • bin/install-package-tests.sh 将配置您的环境以运行测试。
  • bin/test.sh 是一个测试运行器,它尊重上下文 Behat 标签。
  • features/load-wp-cli.feature 是一个基本测试,以确认 WP-CLI 可以加载。
  • features/bootstrapfeatures/stepsfeatures/extra 是 Behat 配置文件。

运行 bin/install-package-tests.sh 后,您可以使用 ./vendor/bin/behat 运行测试。如果您在多个项目中使用 Behat 而不想为每个项目安装一个副本,可以使用 composer global require behat/behat 在您的机器上全局安装 Behat。请确保 ~/.composer/vendor/bin 也已添加到您的 $PATH。完成这些后,您可以通过调用 behat 运行项目的测试。

对于 Travis CI,包目录中具有特殊名称的文件可以用于修改生成的 .travis.yml,其中 <tag> 是 'cache'、'env'、'matrix'、'before_install'、'install'、'before_script' 或 'script' 之一

  • travis-<tag>.yml - 用于 <tag> 的内容(如果有,则忽略以下内容)
  • travis-<tag>-append.yml - 追加到生成的 <tag> 的内容

您还可以使用文件追加到生成的 .travis.yml

  • travis-append.yml - 追加到生成的 .travis.yml 的内容

环境

文件 features/bootstrap/FeatureContext.php 期望 WP_CLI_BIN_DIR 环境变量。

WP-CLI Behat框架使用Behat ~2.5,该版本通过Composer安装。

选项

<dir>
	Directory path to an existing package to generate tests for.

[--ci=<provider>]
	Create a configuration file for a specific CI provider.
	---
	default: travis
	options:
	  - travis
	  - circle
	  - github
	---

[--force]
	Overwrite files that already exist.

示例

# Generate files for writing Behat tests.
$ wp scaffold package-tests /path/to/command/dir/
Success: Created package test files.

wp scaffold package-readme

为您的命令生成README.md。

wp scaffold package-readme <dir> [--force] [--branch=<branch>]

根据您的WP-CLI包的composer.json文件创建包含使用、安装和贡献说明的README.md。在项目开始时运行此命令,并且每次您的使用文档更改时也运行。

这些特定命令的文档是基于composer.json -> 'extra' -> 'commands' 生成的。例如,此包的composer.json包括

{
  "name": "wp-cli/scaffold-package-command",
   // [...]
   "extra": {
       "commands": [
           "scaffold package",
           "scaffold package-tests",
           "scaffold package-readme"
       ]
   }
}

您还可以通过composer.json -> 'extra' -> 'readme' 般地自定义README.md的渲染。例如,运行command/hook的composer.json包括

{
    "extra": {
        "commands": [
            "hook"
        ],
        "readme": {
            "shields": [
                "[![Build Status](https://travis-ci.org/runcommand/reset-password.svg?branch=master)](https://travis-ci.org/runcommand/reset-password)"
            ],
            "sections": [
                "Using",
                "Installing",
                "Support"
            ],
            "support": {
                "body": "https://raw.githubusercontent.com/runcommand/runcommand-theme/master/bin/readme-partials/support-open-source.md"
            },
            "show_powered_by": false
        }
    }
}

在这个例子中

  • "shields"支持显示任意图像作为徽章。
  • "sections"允许定义任意部分(而不是默认的Using、Installing和Contributing)。
  • "support" -> "body"使用远程Markdown文件作为部分内容。这也可以是本地文件路径或字符串。
  • "show_powered_by"在readme末尾显示或隐藏Powered By提及。

对于部分,支持"pre"、"body"和"post"。示例

"support": {
  "pre": "highlight.md",
  "body": "https://raw.githubusercontent.com/runcommand/runcommand-theme/master/bin/readme-partials/support-open-source.md",
  "post": "This is additional text to show after main body content."
},

在这个例子中

  • "pre"内容是从本地highlight.md文件中提取的。
  • "body"内容是从远程URL提取的。
  • "post"是一个字符串。

选项

<dir>
	Directory path to an existing package to generate a readme for.

[--force]
	Overwrite the readme if it already exists.

[--branch=<branch>]
	Name of default branch of the underlying repository. Defaults to master.

wp scaffold package-github

为您的命令生成GitHub配置文件。

wp scaffold package-github <dir> [--force]

创建各种文件以更好地管理您的GitHub项目。这些文件包括

  • .github/ISSUE_TEMPLATE - 当用户打开新问题时显示的文本。
  • .github/PULL_REQUEST_TEMPLATE - 当用户提交拉取请求时显示的文本。
  • .github/settings.yml - Probot设置应用的配置文件。

选项

<dir>
	Directory path to an existing package to generate GitHub configuration for.

[--force]
	Overwrite files that already exist.

安装

安装此包需要WP-CLI v2.11或更高版本。使用wp cli update更新到最新稳定版本。

更新后,您可以使用以下命令安装此包的最新稳定版本

wp package install wp-cli/scaffold-package-command:@stable

要安装此包的最新开发版本,请使用以下命令代替

wp package install wp-cli/scaffold-package-command:dev-main

贡献

我们感谢您主动为这个项目做出贡献。

贡献不仅限于代码。我们鼓励您以最适合您能力的方式贡献,例如编写教程、在您当地的聚会中进行演示、帮助其他用户解决支持问题或修订我们的文档。

有关更详细的介绍,请查看WP-CLI的贡献指南。此包遵循那些政策和指南。

报告错误

认为您发现了一个错误?我们很乐意您帮助我们修复它。

在创建新问题之前,您应该搜索现有问题,看看是否有现有的解决方案,或者它是否已在较新版本中修复。

在搜索之后,如果您发现没有开放或修复的问题与您的错误相关,请创建新问题。请提供尽可能多的详细信息,并在可能的情况下提供清晰的复现步骤。有关更多指导,请查看我们的错误报告文档

创建拉取请求

想要贡献一个新功能?请首先打开新问题来讨论该功能是否适合项目。

一旦您决定投入时间看到您的拉取请求通过,请遵循我们创建拉取请求的指南以确保这是一个愉快的体验。请参见"设置"以了解在本地工作于此包的详细信息。

支持

GitHub 问题不是用于一般支持问题的,但您可以尝试其他途径:https://wp-cli.org/#support

本 README.md 文件是通过项目代码库动态生成的,使用 wp scaffold package-readme 命令(文档)。如需建议更改,请提交针对代码库对应部分的拉取请求。