Marco de prueba WP-CLI
Enlaces rápidos: Usando | Contribuyendo | Apoyo
Para utilizar el marco de prueba de WP-CLI, debe completar los siguientes pasos desde el paquete al que desea agregarlos:
Agregue el marco de prueba como requisito de desarrollo:
composer require --dev wp-cli/wp-cli-tests
Agregue los scripts de prueba necesarios al archivo 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 "
]
}
Por supuesto, puedes eliminar los que no necesites.
Opcionalmente, agregue un tiempo de espera de proceso modificado al archivo composer.json
para asegurarse de que los scripts puedan ejecutarse hasta que se complete su trabajo:
"config" : {
"process-timeout" : 1800
},
El tiempo de espera se expresa en segundos.
Opcionalmente, agregue un archivo behat.yml
a la raíz del paquete con el siguiente contenido:
default :
suites :
default :
contexts :
- WP_CLITestsContextFeatureContext
paths :
- features
Esto garantizará que el sistema automatizado Behat funcione en todas las plataformas. Esto es necesario en Windows.
Opcionalmente, agregue un archivo phpcs.xml.dist
a la raíz del paquete para habilitar el estilo del código y las comprobaciones de mejores prácticas usando PHP_CodeSniffer.
Ejemplo de un conjunto de reglas personalizado mínimo basado en los valores predeterminados establecidos en el marco de prueba de 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 >
Todas las demás opciones de configuración de PHPCS están, por supuesto, disponibles.
Actualice las dependencias de su compositor y regenere su cargador automático y carpetas binarias:
composer update
Ahora está listo para usar el marco de prueba desde su paquete.
Puede utilizar los siguientes comandos para controlar las pruebas:
composer prepare-tests
: configura la base de datos necesaria para ejecutar las pruebas funcionales. Esto sólo es necesario una vez.composer test
: ejecuta todos los conjuntos de pruebas.composer lint
: ejecuta solo el conjunto de pruebas de linting.composer phpcs
: ejecuta solo el conjunto de pruebas de detección de código.composer phpcbf
: ejecuta solo la limpieza del rastreador de código.composer phpunit
: ejecuta solo el conjunto de pruebas unitarias.composer behat
: ejecuta solo el conjunto de pruebas funcionales.Para enviar uno o más argumentos a una de las herramientas de prueba, anteponga los argumentos con un guión doble. Como ejemplo, a continuación se explica cómo ejecutar las pruebas funcionales solo para un archivo de características específico:
composer behat -- features/cli-info.feature
Es necesario anteponer el doble guión porque, de lo contrario, los argumentos se enviarían al propio Composer, no a la herramienta que ejecuta Composer.
Puede ejecutar las pruebas en una versión específica de WordPress configurando la variable de entorno WP_VERSION
.
Esta variable entiende cualquier versión numérica, así como los términos especiales latest
y trunk
.
Nota: Esto sólo se aplica a las pruebas funcionales de Behat. Todas las demás pruebas nunca cargan WordPress.
A continuación se explica cómo ejecutar sus pruebas con la última versión troncal de WordPress:
WP_VERSION=trunk composer behat
Puede ejecutar las pruebas contra un binario WP-CLI específico, en lugar de usar el que se ha creado en la carpeta vendor/bin
de su proyecto.
Esto puede ser útil para ejecutar sus pruebas en una versión Phar específica de WP_CLI.
Para hacer esto, puede configurar la variable de entorno WP_CLI_BIN_DIR
para que apunte a una carpeta que contenga un binario wp
ejecutable. Nota: el binario debe llamarse wp
para que se reconozca correctamente.
Como ejemplo, aquí se explica cómo ejecutar sus pruebas con una versión específica de Phar que haya descargado.
# 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
Reglas básicas para configurar el marco de prueba con Travis CI:
composer prepare-tests
deben llamarse una vez por entorno.linting and sniffing
es un análisis estático, por lo que no debería depender de ningún entorno específico. Debe hacer esto solo una vez, como una etapa separada, en lugar de por entorno.composer behat || composer behat-rerun
hace que las pruebas de Behat se ejecuten en su totalidad primero y, en caso de que haya escenarios fallidos, se realiza una segunda ejecución solo con los escenarios fallidos. Por lo general, esto soluciona problemas intermitentes como tiempos de espera o similares.Aquí hay una configuración básica de cómo puede configurar Travis CI para que funcione con el marco de prueba (extracto):
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
Puede apuntar las pruebas a una versión específica de WP-CLI a través de la constante WP_CLI_BIN_DIR
:
WP_CLI_BIN_DIR= ~ /my-custom-wp-cli/bin composer behat
Si desea ejecutar las pruebas de funciones en una versión específica de WordPress, puede usar la constante WP_VERSION
:
WP_VERSION=4.2 composer behat
La constante WP_VERSION
también entiende la latest
y trunk
como destinos de versión válidos.
De forma predeterminada, las pruebas se ejecutan en una base de datos llamada wp_cli_test
con el usuario también llamado wp_cli_test
con contraseña password1
. Esto debe configurarse mediante el comando composer prepare-tests
.
Las siguientes variables de entorno se pueden configurar para anular las credenciales de la base de datos predeterminada.
WP_CLI_TEST_DBHOST
es el host a utilizar y puede incluir un puerto, es decir, "127.0.0.1:33060" (el valor predeterminado es "localhost")WP_CLI_TEST_DBROOTUSER
es el usuario que tiene permiso para administrar bases de datos y usuarios (el valor predeterminado es "root").WP_CLI_TEST_DBROOTPASS
es la contraseña que debe usar el usuario anterior (la contraseña predeterminada es vacía).WP_CLI_TEST_DBNAME
es la base de datos en la que se ejecutan las pruebas (el valor predeterminado es "wp_cli_test").WP_CLI_TEST_DBUSER
es el usuario bajo el cual se ejecutan las pruebas (el valor predeterminado es "wp_cli_test").WP_CLI_TEST_DBPASS
es la contraseña que debe utilizar el usuario anterior (el valor predeterminado es "contraseña1").WP_CLI_TEST_DBTYPE
es el tipo de motor de base de datos que se utilizará, es decir, "sqlite" para ejecutar pruebas en SQLite en lugar de MySQL (el valor predeterminado es "mysql"). Las variables de entorno se pueden configurar para toda la sesión mediante la siguiente sintaxis: export WP_CLI_TEST_DBNAME=custom_db
.
También se pueden configurar para una ejecución única anteponiéndolos antes del comando Behat: WP_CLI_TEST_DBNAME=custom_db composer behat
.
Agradecemos que haya tomado la iniciativa de contribuir a este proyecto.
La contribución no se limita solo al código. Le animamos a contribuir de la manera que mejor se adapte a sus capacidades, escribiendo tutoriales, ofreciendo una demostración en su reunión local, ayudando a otros usuarios con sus preguntas de soporte o revisando nuestra documentación.
Para obtener una introducción más completa, consulte la guía de contribución de WP-CLI. Este paquete sigue esas políticas y directrices.
¿Crees que has encontrado un error? Nos encantaría que nos ayudaras a solucionarlo.
Antes de crear un nuevo problema, debe buscar problemas existentes para ver si existe una solución o si ya se solucionó en una versión más reciente.
Una vez que haya investigado un poco y haya descubierto que no hay ningún problema abierto o solucionado para su error, cree un nuevo problema. Incluya tantos detalles como pueda y pasos claros para reproducir si es posible. Para obtener más orientación, revise nuestra documentación de informe de errores.
¿Quieres contribuir con una nueva función? Primero abra una nueva edición para analizar si la función es adecuada para el proyecto.
Una vez que haya decidido dedicar tiempo a revisar su solicitud de extracción, siga nuestras pautas para crear una solicitud de extracción y asegurarse de que sea una experiencia agradable. Consulte "Configuración" para obtener detalles específicos sobre cómo trabajar en este paquete localmente.
Los problemas de GitHub no son para preguntas generales de soporte, pero hay otros lugares que puedes probar: https://wp-cli.org/#support