-
Notifications
You must be signed in to change notification settings - Fork 11
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Functional tests for WP-CLI commands (#124)
* First pass at new behat config * Use https url for dist-archive-command repo Needed as long as the command isn't available on Packagist * Build zip on travis * Use binaries inside vendor/bin/ * Only create a single build before running all tests * Add quotes * Add some debugging lines for travis * Update wp-cli/dist-archive-command dependency * Try moving build step to before_script * Further tests * Add debug flag to cli command * Try cd'ing * prepare behat tests on install * Use build-ci script again * Use hardcoded directory name * Add git folder to distignore * Use "./" as a workaround for dist-archive * Use wp-cli-tests v3 * Lint fixes * Load wp-cli-stubs with scanFiles: (#209) * Normalize Composer configuration (#211) * Update composer script for code coverage * Don't run behat tests in the PHPUnit workflow * Apply suggestions from code review * Remove unneeded dependency * Add GitHub action workflow * Install WordPress test setup * Update workflow * Hardcode mysql version * Add `maybe-generate-wp-cli-coverage.php` * Stop on missing coverage files in CI (#213) * Use `set-output` * Update codecov flags * Update PHPUnit to get latest php-code-coverage library * Undo some changes * Normalize composer.json * Run file through PHPCS * Update workflow * Add FeatureContext to install GlotPress * Add some experiment new tests * Fix some whitespace * Use `vendor/bin/behat` for now * Fix code coverage * Ensure pretty permalinks for GlotPress * Fix GlotPress installation in CLI context * Update tests * GlotPress 3.x requires PHP 7.2+ * Add another test to check for coverage update * Update `install-wp-tests.sh` * Update gitignore * Set `pcov.directory` appropriately * Set `pcov.exclude` as well Co-authored-by: Viktor Szépe <[email protected]> Co-authored-by: Dominik Schilling <[email protected]>
- Loading branch information
1 parent
57e808c
commit 2a7f279
Showing
27 changed files
with
653 additions
and
83 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,141 @@ | ||
name: Behat | ||
|
||
on: | ||
push: | ||
branches: | ||
- master | ||
pull_request: | ||
|
||
jobs: | ||
behat: | ||
name: Behat (PHP ${{ matrix.php }}, WordPress ${{ matrix.wordpress }}, GlotPress ${{ matrix.glotpress }}) | ||
runs-on: ${{ matrix.os }} | ||
continue-on-error: ${{ matrix.experimental }} | ||
services: | ||
mysql: | ||
image: mysql:5.7 | ||
ports: | ||
- 3306/tcp | ||
env: | ||
MYSQL_ROOT_PASSWORD: password | ||
# Set health checks to wait until mysql has started | ||
options: >- | ||
--health-cmd "mysqladmin ping" | ||
--health-interval 10s | ||
--health-timeout 5s | ||
--health-retries 3 | ||
-e MYSQL_ROOT_PASSWORD=root | ||
-e MYSQL_DATABASE=wp_cli_test | ||
--entrypoint sh mysql:5.7 | ||
-c "exec docker-entrypoint.sh mysqld --default-authentication-plugin=mysql_native_password" | ||
strategy: | ||
matrix: | ||
os: [ ubuntu-latest ] | ||
php: [ '7.4', '7.3', '7.2' ] | ||
wordpress: [ 'latest', 'nightly' ] | ||
glotpress: [ 'develop' ] | ||
experimental: [ false ] | ||
include: | ||
# - php: '8.0' | ||
# os: ubuntu-latest | ||
# experimental: true | ||
- os: ubuntu-latest | ||
php: '7.4' | ||
wordpress: 'latest' | ||
glotpress: 'develop' | ||
experimental: false | ||
coverage: true | ||
|
||
steps: | ||
- name: Check out Git repository | ||
uses: actions/checkout@v2 | ||
|
||
- name: Setup PHP | ||
uses: shivammathur/setup-php@v2 | ||
with: | ||
php-version: ${{ matrix.php }} | ||
coverage: ${{ matrix.coverage && 'pcov' || 'none' }} | ||
tools: composer | ||
ini-values: pcov.directory=.,pcov.exclude=~(vendor|tests)~ | ||
|
||
- name: Shutdown default MySQL service | ||
run: sudo service mysql stop | ||
|
||
- name: Verify MariaDB connection | ||
run: | | ||
while ! mysqladmin ping -h"127.0.0.1" -P"${{ job.services.mysql.ports[3306] }}" --silent; do | ||
sleep 1 | ||
done | ||
- name: Get Composer cache directory | ||
id: composer-cache | ||
run: | | ||
echo "::set-output name=dir::$(composer config cache-files-dir)" | ||
- name: Cache PHP dependencies | ||
uses: actions/cache@v2 | ||
with: | ||
path: ${{ steps.composer-cache.outputs.dir }} | ||
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} | ||
restore-keys: | | ||
${{ runner.os }}-composer- | ||
- name: Install WP-CLI | ||
run: | | ||
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar | ||
chmod +x wp-cli.phar | ||
mkdir -p bin | ||
mv wp-cli.phar bin/wp | ||
echo "WP_CLI_BIN_DIR=${PWD}/bin" >> $GITHUB_ENV | ||
- name: Install dependencies | ||
run: | | ||
composer install --no-progress --no-suggest --prefer-dist --optimize-autoloader | ||
echo "${PWD}/vendor/bin" >> $GITHUB_PATH | ||
- name: Update PHPUnit to get latest php-code-coverage library | ||
if: ${{ matrix.coverage == true }} | ||
# phpunit/phpunit has to be updated as the one in use provides an older version of phpunit/php-code-coverage, | ||
# but we need the v9.x branch. | ||
# It cannot be removed, as it is a requirement of wp-cli/wp-cli-tests as well. | ||
run: | | ||
composer require --dev --ignore-platform-reqs --update-with-all-dependencies phpunit/phpunit | ||
- name: Configure DB environment | ||
run: | | ||
export MYSQL_HOST=127.0.0.1 | ||
export MYSQL_TCP_PORT=${{ job.services.mysql.ports['3306'] }} | ||
echo "WP_CLI_TEST_DBROOTUSER=root" >> $GITHUB_ENV | ||
echo "WP_CLI_TEST_DBROOTPASS=root" >> $GITHUB_ENV | ||
echo "WP_CLI_TEST_DBUSER=wp_cli_test" >> $GITHUB_ENV | ||
echo "WP_CLI_TEST_DBPASS=password1" >> $GITHUB_ENV | ||
echo "WP_CLI_TEST_DBHOST=$MYSQL_HOST:$MYSQL_TCP_PORT" >> $GITHUB_ENV | ||
- name: Prepare test database | ||
run: composer prepare-tests | ||
|
||
- name: Check Behat environment | ||
run: WP_CLI_TEST_DEBUG_BEHAT_ENV=1 composer behat | ||
|
||
- name: Run tests | ||
env: | ||
BEHAT_CODE_COVERAGE: ${{ matrix.coverage }} | ||
run: vendor/bin/behat | ||
|
||
- name: Retrieve list of coverage files | ||
id: coverage_files | ||
if: ${{ matrix.coverage == true }} | ||
run: | | ||
FILES=$(ls -d -1 "$GITHUB_WORKSPACE/build/logs/clover-behat/"*.* | paste --serial --delimiters=",") | ||
test -n "$FILES" | ||
echo "Coverage files: $FILES" | ||
echo "::set-output name=COVERAGE_FILES::$FILES" | ||
- name: Upload code coverage report | ||
if: ${{ matrix.coverage }} | ||
uses: codecov/[email protected] | ||
with: | ||
files: ${{ steps.coverage_files.outputs.COVERAGE_FILES }} | ||
flags: feature | ||
fail_ci_if_error: true |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -6,4 +6,10 @@ | |
/node_modules/ | ||
|
||
# PHPUnit | ||
/coverage.xml | ||
/coverage*.xml | ||
|
||
# Behat | ||
*.log | ||
|
||
# Build process | ||
/build |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
default: | ||
suites: | ||
default: | ||
contexts: | ||
- Required\Traduttore\Tests\Behat\FeatureContext | ||
paths: | ||
- tests/features |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.