WP-CLI 테스트 프레임워크
빠른 링크: 사용 | 기여 | 지원하다
WP-CLI 테스트 프레임워크를 사용하려면 이를 추가하려는 패키지 내에서 다음 단계를 완료해야 합니다.
개발 요구 사항으로 테스트 프레임워크를 추가합니다.
composer require --dev wp-cli/wp-cli-tests
composer.json
파일에 필수 테스트 스크립트를 추가합니다.
"scripts" : {
"behat" : " run-behat-tests " ,
"behat-rerun" : " rerun-behat-tests " ,
"lint" : " run-linter-tests " ,
"phpcs" : " run-phpcs-tests " ,
"phpcbf" : " run-phpcbf-cleanup " ,
"phpunit" : " run-php-unit-tests " ,
"prepare-tests" : " install-package-tests " ,
"test" : [
" @lint " ,
" @phpcs " ,
" @phpunit " ,
" @behat "
]
}
물론 필요하지 않은 것을 제거할 수도 있습니다.
선택적으로 수정된 프로세스 제한 시간을 composer.json
파일에 추가하여 작업이 완료될 때까지 스크립트가 실행될 수 있는지 확인하세요.
"config" : {
"process-timeout" : 1800
},
시간 초과는 초 단위로 표시됩니다.
선택적으로 다음 내용이 포함된 behat.yml
파일을 패키지 루트에 추가합니다.
default :
suites :
default :
contexts :
- WP_CLITestsContextFeatureContext
paths :
- features
이렇게 하면 자동화된 Behat 시스템이 모든 플랫폼에서 작동하는지 확인할 수 있습니다. 이는 Windows에서 필요합니다.
선택적으로 phpcs.xml.dist
파일을 패키지 루트에 추가하여 PHP_CodeSniffer를 사용하여 코드 스타일 및 모범 사례 검사를 활성화합니다.
WP-CLI 테스트 프레임워크에 설정된 기본값을 기반으로 하는 최소 사용자 정의 규칙 세트의 예:
<? xml version = " 1.0 " ?>
< ruleset name = " WP-CLI-PROJECT-NAME " >
< description >Custom ruleset for WP-CLI PROJECT NAME</ description >
<!-- What to scan. -->
< file >.</ file >
<!-- Show progress. -->
< arg value = " p " />
<!-- Strip the filepaths down to the relevant bit. -->
< arg name = " basepath " value = " ./ " />
<!-- Check up to 8 files simultaneously. -->
< arg name = " parallel " value = " 8 " />
<!-- For help understanding the `testVersion` configuration setting:
https://github.com/PHPCompatibility/PHPCompatibility#sniffing-your-code-for-compatibility-with-specific-php-versions -->
< config name = " testVersion " value = " 5.4- " />
<!-- Rules: Include the base ruleset for WP-CLI projects. -->
< rule ref = " WP_CLI_CS " />
</ ruleset >
물론 다른 모든 PHPCS 구성 옵션도 사용할 수 있습니다.
작성기 종속성을 업데이트하고 오토로더 및 바이너리 폴더를 다시 생성합니다.
composer update
이제 패키지 내에서 테스트 프레임워크를 사용할 준비가 되었습니다.
다음 명령을 사용하여 테스트를 제어할 수 있습니다.
composer prepare-tests
- 기능 테스트를 실행하는 데 필요한 데이터베이스를 설정합니다. 이는 한 번만 필요합니다.composer test
- 모든 테스트 스위트를 실행합니다.composer lint
- Linting 테스트 모음만 실행합니다.composer phpcs
- 코드 스니퍼 테스트 모음만 실행합니다.composer phpcbf
- 코드 스니퍼 정리만 실행합니다.composer phpunit
- 단위 테스트 모음만 실행합니다.composer behat
- 기능 테스트 스위트만 실행하십시오.테스트 도구 중 하나에 하나 이상의 인수를 보내려면 인수 앞에 이중 대시를 추가하십시오. 예를 들어, 특정 기능 파일에 대해서만 기능 테스트를 실행하는 방법은 다음과 같습니다.
composer behat -- features/cli-info.feature
그렇지 않으면 인수가 Composer가 실행하는 도구가 아닌 Composer 자체로 전송되기 때문에 이중 대시를 앞에 추가해야 합니다.
WP_VERSION
환경 변수를 설정하여 특정 버전의 WordPress에 대해 테스트를 실행할 수 있습니다.
이 변수는 특수 용어인 latest
및 trunk
뿐만 아니라 모든 숫자 버전을 이해합니다.
참고: 이는 Behat 기능 테스트에만 적용됩니다. 다른 모든 테스트에서는 WordPress가 로드되지 않습니다.
WordPress의 최신 트렁크 버전에 대해 테스트를 실행하는 방법은 다음과 같습니다.
WP_VERSION=trunk composer behat
프로젝트의 vendor/bin
폴더에 빌드된 바이너리를 사용하는 대신 특정 WP-CLI 바이너리에 대해 테스트를 실행할 수 있습니다.
이는 특정 Phar 버전의 WP_CLI에 대해 테스트를 실행하는 데 유용할 수 있습니다.
이렇게 하려면 실행 가능한 wp
바이너리가 포함된 폴더를 가리키도록 WP_CLI_BIN_DIR
환경 변수를 설정하면 됩니다. 참고: 제대로 인식되려면 바이너리 이름을 wp
로 지정해야 합니다.
예를 들어 다운로드한 특정 Phar 버전에 대해 테스트를 실행하는 방법은 다음과 같습니다.
# Prepare the binary you've downloaded into the ~/wp-cli folder first.
mv ~ /wp-cli/wp-cli-1.2.0.phar ~ /wp-cli/wp
chmod +x ~ /wp-cli/wp
WP_CLI_BIN_DIR= ~ /wp-cli composer behat
Travis CI로 테스트 프레임워크를 설정하기 위한 기본 규칙:
composer prepare-tests
환경당 한 번씩 호출해야 합니다.linting and sniffing
정적 분석이므로 특정 환경에 의존해서는 안 됩니다. 이 작업은 환경별로 수행하는 것이 아니라 별도의 단계로 한 번만 수행해야 합니다.composer behat || composer behat-rerun
사용하면 먼저 Behat 테스트 전체가 실행되고 실패한 시나리오의 경우 실패한 시나리오만 사용하여 두 번째 실행이 수행됩니다. 이는 일반적으로 시간 초과 또는 이와 유사한 간헐적인 문제를 해결합니다.테스트 프레임워크(추출)와 함께 작동하도록 Travis CI를 구성하는 방법에 대한 기본 설정은 다음과 같습니다.
install :
- composer install
- composer prepare-tests
script :
- composer phpunit
- composer behat || composer behat-rerun
jobs :
include :
- stage : sniff
script :
- composer lint
- composer phpcs
env : BUILD=sniff
- stage : test
php : 7.2
env : WP_VERSION=latest
- stage : test
php : 7.2
env : WP_VERSION=3.7.11
- stage : test
php : 7.2
env : WP_VERSION=trunk
WP_CLI_BIN_DIR
상수를 통해 테스트가 특정 버전의 WP-CLI를 가리킬 수 있습니다.
WP_CLI_BIN_DIR= ~ /my-custom-wp-cli/bin composer behat
특정 WordPress 버전에 대해 기능 테스트를 실행하려면 WP_VERSION
상수를 사용할 수 있습니다.
WP_VERSION=4.2 composer behat
WP_VERSION
상수는 latest
과 trunk
도 유효한 버전 대상으로 인식합니다.
기본적으로 테스트는 wp_cli_test
라는 이름의 데이터베이스에서 실행되며 사용자 이름도 wp_cli_test
이고 비밀번호는 password1
입니다. 이는 composer prepare-tests
명령을 통해 설정해야 합니다.
다음 환경 변수를 설정하여 기본 데이터베이스 자격 증명을 재정의할 수 있습니다.
WP_CLI_TEST_DBHOST
는 사용할 호스트이며 포트(예: "127.0.0.1:33060")를 포함할 수 있습니다(기본값은 "localhost").WP_CLI_TEST_DBROOTUSER
데이터베이스 및 사용자를 관리할 수 있는 권한이 있는 사용자입니다(기본값은 "루트").WP_CLI_TEST_DBROOTPASS
는 위 사용자에게 사용할 비밀번호입니다. (기본값은 빈 비밀번호입니다.)WP_CLI_TEST_DBNAME
은 테스트가 실행되는 데이터베이스입니다(기본값은 "wp_cli_test").WP_CLI_TEST_DBUSER
테스트가 실행되는 사용자입니다(기본값은 "wp_cli_test").WP_CLI_TEST_DBPASS
는 위 사용자가 사용할 비밀번호입니다(기본값은 "password1").WP_CLI_TEST_DBTYPE
은 사용할 데이터베이스 엔진 유형입니다. 즉, MySQL 대신 SQLite에서 테스트를 실행하기 위한 "sqlite"입니다(기본값은 "mysql"). 다음 구문을 통해 전체 세션에 대해 환경 변수를 설정할 수 있습니다: export WP_CLI_TEST_DBNAME=custom_db
.
Behat 명령 앞에 추가하여 단일 실행을 위해 설정할 수도 있습니다: WP_CLI_TEST_DBNAME=custom_db composer behat
.
이 프로젝트에 적극적으로 참여해 주셔서 감사합니다.
기여는 코드에만 국한되지 않습니다. 튜토리얼을 작성하고, 지역 모임에서 데모를 제공하고, 다른 사용자의 지원 질문을 돕거나, 문서를 수정하는 등 자신의 능력에 가장 적합한 방식으로 기여하는 것이 좋습니다.
보다 철저한 소개를 보려면 WP-CLI의 기여 가이드를 확인하세요. 이 패키지는 해당 정책과 지침을 따릅니다.
버그를 발견했다고 생각하시나요? 문제를 해결할 수 있도록 도와주시면 감사하겠습니다.
새 문제를 만들기 전에 기존 문제를 검색하여 기존 해결 방법이 있는지, 아니면 이미 최신 버전에서 수정되었는지 확인해야 합니다.
약간의 검색을 수행한 후 버그에 대해 열려 있거나 해결된 문제가 없다는 것을 발견하면 새 문제를 생성하십시오. 가능한 한 많은 세부정보를 포함하고 가능하면 재현할 단계를 명확하게 지정하세요. 자세한 지침은 버그 보고서 문서를 검토하세요.
새로운 기능에 기여하고 싶으신가요? 먼저 새 이슈를 열어 해당 기능이 프로젝트에 적합한지 논의하십시오.
끌어오기 요청을 검토하는 데 시간을 투자하기로 결정했다면 끌어오기 요청 생성에 대한 지침을 따라 즐거운 경험이 되도록 하세요. 이 패키지를 로컬에서 작업하는 것과 관련된 자세한 내용은 "설정"을 참조하세요.
GitHub 문제는 일반적인 지원 질문이 아니지만 시도해 볼 수 있는 다른 장소가 있습니다: https://wp-cli.org/#support