このプラグインは、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 レベルの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