ปลั๊กอินนี้มีอะแดปเตอร์ 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 " }
})
ตามค่าดีฟอลต์ อะแด็ปเตอร์จะค้นหาไฟล์ทดสอบใน dirs ทั้งหมดในรูท ยกเว้น 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"
หรือ 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 โปรดยกระดับการประชาสัมพันธ์หากคุณสนใจที่จะเพิ่มฟังก์ชันการทำงานใหม่หรือแก้ไขข้อบกพร่องใดๆ เมื่อส่งข้อบกพร่อง โปรดใส่ตัวอย่างการทดสอบที่เราสามารถทดสอบได้
หากต้องการทริกเกอร์การทดสอบอะแด็ปเตอร์ ให้รัน:
./scripts/test