Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Declare and check the external tools that scenarios need

Open
#393 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
45/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
php
Domain
testing

Research direction

Start from the Behat feature files config-edit.feature and post.feature and the requirement handling described in #392. Read the test runner that filters on @require-* tags and the linter for feature files. Done means required executables are declared as tags, checked before run, and missing tools report as undeclared with the tag to add.

Written by the indexing model from the issue text.

Description

bug scope:testing

Some scenarios depend on external tools without declaring it. For example, config-edit.feature in config-command and post.feature in entity-command use ex as the editor. Where ex is missing, these scenarios fail halfway through, after the setup has already run. In post.feature that happens at the 17th step of the scenario, after a WordPress install and 6 wp calls.

Some declared requirements are not checked at all: @require-composer, @require-download and @require-opcache-save-comments appear in feature files but never filter anything.

Steps:

  1. Support declaring required executables as tags, checked before the run like the other requirements and reported as described in #392.
  2. Check the existing @require-* tags that are currently ignored, and warn about unknown ones so that typos do not go unnoticed.
  3. When a command fails because an executable is missing, report it as an undeclared requirement, naming the tag to add, instead of as a regular test failure. This also catches tools used inside wp commands, such as mysqldump, svn or zip.
  4. Flag steps that call known external tools without the matching tag when the feature files are linted.
  5. Add the missing tags to the existing feature files in the command packages.
Dominant language
PHP
Stars
42
Forks
28
Avg merge
15h 17m
Merged PRs (30d)
6

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from wp-cli/wp-cli-tests

All issues in wp-cli/wp-cli-tests

Similar issues

More PHP issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.