يوفر هذا البرنامج المساعد محول PHPUnit لإطار عمل Neotest.
قم بالتثبيت باستخدام مدير الحزم الذي تختاره:
كسول
{
" 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.
أولاً، قم بتثبيت وتكوين nvim-dap باستخدام vscode-php-debug. ثم قم بتعيين تكوين 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 ],
})
ملحوظة
إذا قمت بإجراء اختبار باستخدام استراتيجية dap
من نافذة الملخص (افتراضيًا بواسطة d
) ورأيت أن محتوى النافذة قد تم استبداله بمحتوى مصحح الأخطاء، ففكر في تعيين dap.defaults.fallback.switchbuf = "useopen"
أو switchbuf
على مستوى Neovim
لاختبار اختبار واحد، قم بالتمرير فوق الاختبار وتشغيل 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. يرجى رفع العلاقات العامة إذا كنت مهتمًا بإضافة وظائف جديدة أو إصلاح أي أخطاء. عند إرسال خطأ، يرجى تضمين مثال للاختبار الذي يمكننا اختباره.
لبدء اختبارات المحول، قم بتشغيل:
./scripts/test