Este complemento proporciona un adaptador PHPUnit para el marco Neotest.
Instale con el administrador de paquetes de su elección:
Perezoso
{
" nvim-neotest/neotest " ,
lazy = true ,
dependencies = {
... ,
" olimorris/neotest-phpunit " ,
},
config = function ()
require ( " neotest " ). setup ({
... ,
adapters = {
require ( " neotest-phpunit " )
},
}
end
}
Envasador
use ({
" nvim-neotest/neotest " ,
requires = {
... ,
" olimorris/neotest-phpunit " ,
},
config = function ()
require ( " neotest " ). setup ({
... ,
adapters = {
require ( " neotest-phpunit " ),
}
})
end
})
Nota
Solo necesita llamar a la función setup
si desea cambiar alguno de los valores predeterminados.
adapters = {
require ( " neotest-phpunit " )({
phpunit_cmd = function ()
return " vendor/bin/phpunit " -- for `dap` strategy then it must return string (table values will cause validation error)
end ,
root_files = { " composer.json " , " phpunit.xml " , " .gitignore " },
filter_dirs = { " .git " , " node_modules " },
env = {}, -- for example {XDEBUG_CONFIG = 'idekey=neotest'}
dap = nil , -- to configure `dap` strategy put single element from `dap.configurations.php`
}),
}
El comando utilizado para ejecutar pruebas se puede cambiar mediante la opción phpunit_cmd
:
require ( " neotest-phpunit " )({
phpunit_cmd = function ()
return " vendor/bin/phpunit "
end
})
Para que los adaptadores Neotest funcionen, deben definir una raíz del proyecto mediante la cual pueda tener lugar el proceso de descubrimiento de pruebas. De forma predeterminada, el adaptador busca un archivo composer.json
, phpunit.xml
o .gitignore
. Estos se pueden cambiar con:
require ( " neotest-phpunit " )({
root_files = { " README.md " }
})
Incluso puedes configurar root_files
con una función que devuelve una tabla:
require ( " neotest-phpunit " )({
root_files = function () return { " README.md " } end
})
Si hay proyectos que no desea que se descubran, puede configurar root_ignore_files
para ignorar cualquier proyecto coincidente.
Por ejemplo, si su proyecto utiliza Pest y el adaptador neotest adecuado, deberá configurar:
require ( " neotest-phpunit " )({
root_ignore_files = { " tests/Pest.php " }
})
De forma predeterminada, el adaptador buscará archivos de prueba en todos los directorios de la raíz con la excepción de node_modules
y .git
. Puedes cambiar esto con:
require ( " neotest-phpunit " )({
filter_dirs = { " vendor " }
})
Incluso puedes configurar filter_dirs
con una función que devuelve una tabla:
require ( " neotest-phpunit " )({
filter_dirs = function () return { " vendor " } end
})
El complemento también se puede utilizar para depurar mediante una estrategia dap.
En primer lugar, instale y configure nvim-dap con vscode-php-debug. Luego establezca la siguiente configuración de dap:
dap . configurations . php = {
{
log = true ,
type = " php " ,
request = " launch " ,
name = " Listen for XDebug " ,
port = 9003 ,
stopOnEntry = false ,
xdebugSettings = {
max_children = 512 ,
max_data = 1024 ,
max_depth = 4 ,
},
breakpoints = {
exception = {
Notice = false ,
Warning = false ,
Error = false ,
Exception = false ,
[ " * " ] = false ,
},
},
}
}
Luego, en la configuración del complemento, agregue:
require ( " neotest-phpunit " )({
env = {
XDEBUG_CONFIG = " idekey=neotest " ,
},
dap = dap . configurations . php [ 1 ],
})
Nota
Si ejecuta una prueba con la estrategia dap
desde la ventana de resumen (de forma predeterminada por d
) y ve que el contenido de la ventana ha sido reemplazado por el contenido del depurador, considere configurar dap.defaults.fallback.switchbuf = "useopen"
o switchbuf
de nivel Neovim
Para probar una sola prueba, coloque el cursor sobre la prueba y ejecute lua require("neotest").run.run()
Para probar un archivo, ejecute lua require("neotest").run.run(vim.fn.expand("%"))
Para probar un directorio, ejecute lua require("neotest").run.run("path/to/directory")
Para probar el conjunto de pruebas completo, ejecute lua require("neotest").run.run({ suite = true })
Este proyecto es mantenido por la comunidad PHP de Neovim. Por favor, envíe un PR si está interesado en agregar nuevas funciones o corregir algún error. Al enviar un error, incluya una prueba de ejemplo con la que podamos realizar pruebas.
Para activar las pruebas para el adaptador, ejecute:
./scripts/test