2025-01-21 03:29:50 -06:00
|
|
|
return {
|
2026-07-19 11:15:18 -05:00
|
|
|
"nvim-neotest/neotest",
|
|
|
|
|
dependencies = {
|
|
|
|
|
"antoinemadec/FixCursorHold.nvim",
|
|
|
|
|
"nvim-neotest/neotest-python",
|
|
|
|
|
"nvim-neotest/neotest-jest",
|
|
|
|
|
"marilari88/neotest-vitest",
|
|
|
|
|
{ "stevanfreeborn/neotest-playwright", branch = "fork" },
|
|
|
|
|
"issafalcon/neotest-dotnet",
|
|
|
|
|
{ "stevanfreeborn/neotest-go" },
|
|
|
|
|
-- {
|
|
|
|
|
-- "mrcjkb/rustaceanvim",
|
|
|
|
|
-- version = "^6",
|
|
|
|
|
-- lazy = false,
|
|
|
|
|
-- },
|
|
|
|
|
},
|
|
|
|
|
config = function()
|
|
|
|
|
local neotest = require("neotest")
|
2025-01-21 03:29:50 -06:00
|
|
|
|
2026-07-19 11:15:18 -05:00
|
|
|
local neotest_ns = vim.api.nvim_create_namespace("neotest")
|
2025-01-21 03:29:50 -06:00
|
|
|
|
2026-07-19 11:15:18 -05:00
|
|
|
vim.diagnostic.config({
|
|
|
|
|
virtual_text = {
|
|
|
|
|
format = function(diagnostic)
|
|
|
|
|
local message = diagnostic.message:gsub("\n", " "):gsub("\t", " "):gsub("%s+", " "):gsub("^%s+", "")
|
|
|
|
|
return message
|
|
|
|
|
end,
|
|
|
|
|
},
|
|
|
|
|
}, neotest_ns)
|
2026-01-18 04:40:15 -06:00
|
|
|
|
2026-07-19 11:15:18 -05:00
|
|
|
neotest.setup({
|
|
|
|
|
log_level = vim.log.levels.DEBUG,
|
|
|
|
|
summary = {
|
|
|
|
|
follow = false,
|
|
|
|
|
},
|
|
|
|
|
adapters = {
|
|
|
|
|
require("neotest-python"),
|
|
|
|
|
require("neotest-jest"),
|
|
|
|
|
require("neotest-vitest"),
|
|
|
|
|
require("neotest-playwright").adapter({
|
|
|
|
|
options = {
|
|
|
|
|
persist_project_selection = true,
|
|
|
|
|
enable_dynamic_test_discovery = true,
|
|
|
|
|
preset = "headed",
|
|
|
|
|
experimental = {
|
|
|
|
|
telescope = {
|
|
|
|
|
enabled = true,
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
get_playwright_binary = function()
|
|
|
|
|
return vim.loop.cwd() .. "/node_modules/.bin/playwright"
|
|
|
|
|
end,
|
|
|
|
|
},
|
|
|
|
|
}),
|
|
|
|
|
require("neotest-dotnet")({
|
|
|
|
|
dap = {
|
|
|
|
|
adapter_name = "coreclr",
|
|
|
|
|
},
|
|
|
|
|
discovery_root = "solution",
|
|
|
|
|
}),
|
|
|
|
|
require("neotest-go"),
|
|
|
|
|
-- require('rustaceanvim.neotest'),
|
|
|
|
|
},
|
|
|
|
|
})
|
2025-01-21 03:29:50 -06:00
|
|
|
|
2026-07-19 11:15:18 -05:00
|
|
|
vim.keymap.set("n", "<leader>tr", neotest.run.run, { desc = "Run nearest test" })
|
2025-01-21 03:29:50 -06:00
|
|
|
|
2026-07-19 11:15:18 -05:00
|
|
|
vim.keymap.set("n", "<leader>td", function()
|
|
|
|
|
neotest.run.run({ strategy = "dap" })
|
|
|
|
|
end, { desc = "Debug nearest test" })
|
2025-01-25 16:44:54 -06:00
|
|
|
|
2026-07-19 11:15:18 -05:00
|
|
|
vim.keymap.set("n", "<leader>ts", neotest.run.stop, { desc = "Stop nearest test" })
|
2025-01-25 16:44:54 -06:00
|
|
|
|
2026-07-19 11:15:18 -05:00
|
|
|
vim.keymap.set("n", "<leader>tf", function()
|
|
|
|
|
neotest.run.run(vim.fn.expand("%"))
|
|
|
|
|
end, { desc = "Run file tests" })
|
2026-01-04 23:48:03 -06:00
|
|
|
|
2026-07-19 11:15:18 -05:00
|
|
|
vim.keymap.set("n", "<leader>to", neotest.output.open, { desc = "Display output" })
|
|
|
|
|
vim.keymap.set("n", "<leader>top", neotest.output_panel.open, { desc = "Display output panel" })
|
|
|
|
|
vim.keymap.set("n", "<leader>topc", neotest.output_panel.clear, { desc = "Clear output" })
|
|
|
|
|
vim.keymap.set("n", "<C-t>", neotest.summary.open, { desc = "Display summary" })
|
|
|
|
|
vim.keymap.set("n", "<leader>tsr", neotest.summary.run_marked, { desc = "Run marked tests" })
|
|
|
|
|
vim.keymap.set("n", "<leader>tsc", neotest.summary.clear_marked, { desc = "Clear marked tests" })
|
|
|
|
|
vim.keymap.set("n", "<leader>tw", neotest.watch.watch, { desc = "Start watching tests" })
|
|
|
|
|
vim.keymap.set("n", "<leader>twc", neotest.watch.stop, { desc = "Stop watching tests" })
|
|
|
|
|
end,
|
2025-01-21 03:29:50 -06:00
|
|
|
}
|