이 플러그인은 Neotest 프레임워크용 PHPUnit 어댑터를 제공합니다.
원하는 패키지 관리자를 사용하여 설치하십시오.
게으른
{
" nvim-neotest/neotest " ,
lazy = true ,
dependencies = {
... ,
" olimorris/neotest-phpunit " ,
},
config = function ()
require ( " neotest " ). setup ({
... ,
adapters = {
require ( " neotest-phpunit " )
},
}
end
}
포장 기계
use ({
" nvim-neotest/neotest " ,
requires = {
... ,
" olimorris/neotest-phpunit " ,
},
config = function ()
require ( " neotest " ). setup ({
... ,
adapters = {
require ( " neotest-phpunit " ),
}
})
end
})
메모
기본값을 변경하려는 경우에만 setup
함수를 호출하면 됩니다.
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`
}),
}
테스트를 실행하는 데 사용되는 명령은 phpunit_cmd
옵션을 통해 변경할 수 있습니다:
require ( " neotest-phpunit " )({
phpunit_cmd = function ()
return " vendor/bin/phpunit "
end
})
Neotest 어댑터가 작동하려면 테스트 검색 프로세스가 발생할 수 있는 프로젝트 루트를 정의해야 합니다. 기본적으로 어댑터는 composer.json
, phpunit.xml
또는 .gitignore
파일을 찾습니다. 이는 다음을 사용하여 변경할 수 있습니다.
require ( " neotest-phpunit " )({
root_files = { " README.md " }
})
테이블을 반환하는 함수를 사용하여 root_files
설정할 수도 있습니다.
require ( " neotest-phpunit " )({
root_files = function () return { " README.md " } end
})
검색하고 싶지 않은 프로젝트가 있는 경우 대신 root_ignore_files
설정하여 일치하는 프로젝트를 무시할 수 있습니다.
예를 들어 프로젝트에서 Pest와 적절한 neotest 어댑터를 사용하는 경우 다음을 설정해야 합니다.
require ( " neotest-phpunit " )({
root_ignore_files = { " tests/Pest.php " }
})
기본적으로 어댑터는 node_modules
및 .git
을 제외하고 루트의 모든 디렉토리에서 테스트 파일을 검색합니다. 다음을 사용하여 이를 변경할 수 있습니다.
require ( " neotest-phpunit " )({
filter_dirs = { " vendor " }
})
테이블을 반환하는 함수를 사용하여 filter_dirs
설정할 수도 있습니다.
require ( " neotest-phpunit " )({
filter_dirs = function () return { " vendor " } end
})
플러그인은 Dap 전략을 통한 디버깅에도 사용할 수 있습니다.
먼저 vscode-php-debug를 사용하여 nvim-dap을 설치하고 구성합니다. 그런 다음 다음 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 ,
},
},
}
}
그런 다음 플러그인 구성에서 다음을 추가합니다.
require ( " neotest-phpunit " )({
env = {
XDEBUG_CONFIG = " idekey=neotest " ,
},
dap = dap . configurations . php [ 1 ],
})
메모
요약 창(기본적으로 d
)에서 dap
전략을 사용하여 테스트를 실행하고 창 콘텐츠가 디버거 콘텐츠로 대체된 것을 확인한 경우 dap.defaults.fallback.switchbuf = "useopen"
또는 Neovim level switchbuf
설정을 고려하세요.
단일 테스트를 테스트하려면 테스트 위로 마우스를 가져간 후 lua require("neotest").run.run()
실행하세요.
파일을 테스트하려면 lua require("neotest").run.run(vim.fn.expand("%"))
실행하세요.
디렉토리를 테스트하려면 lua require("neotest").run.run("path/to/directory")
실행하세요.
전체 테스트 스위트를 테스트하려면 lua require("neotest").run.run({ suite = true })
실행하세요.
이 프로젝트는 Neovim PHP 커뮤니티에서 유지관리합니다. 새로운 기능을 추가하거나 버그를 수정하는 데 관심이 있다면 PR을 올려주세요. 버그를 제출할 때 테스트할 수 있는 예제 테스트를 포함해 주세요.
어댑터에 대한 테스트를 트리거하려면 다음을 실행하세요.
./scripts/test