-- Neotest: test runner with Go and Python adapters. -- Loads on go/python filetypes, or when require("neotest") is called from a -- keymap (config.keymap wraps the bindings in `function() require(...) end` -- precisely so the lazy-load can happen. return { { "nvim-neotest/neotest", lazy = true, ft = { "go", "ptyhon", "zig" }, dependencies = { "nvim-neotest/nvim-nio", "nvim-lua/plenary.nvim", "antoinemadec/FixCursorHold.nvim", "nvim-treesitter/nvim-treesitter", -- noetest-zig parses tests via treesitter -- Adapters "nvim-neotest/neotest-go", "nvim-neotest/neotest-python", "lawrence-laz/neotest-zig", }, config = function() require("neotest").setup({ log_level = vim.log.levels.WARN, discovery = { enabled = true, concurrent = 0, }, running = { concurrent = true, }, adapters = { require("neotest-go")({ experimental = { test_table = true, }, args = { "-count=1", "-race" }, }), require("neotest-python")({ dap = { justMyCode = false }, args = { "--disable-warnings", "-q" }, }), -- Zig: requires a standard `test` step in build.zig for project-wide runs; -- individual .zig files also work. -- dap.adapter must match the adapter named registered in dap.lua (codelldb) so dT-style -- debug-test works from the summary too require("neotest-zig")({ dap = { adapter = "codelldb" }, }), }, }) end, }, }