return { "nvim-neotest/neotest", dependencies = { "nvim-neotest/nvim-nio", "antoinemadec/FixCursorHold.nvim", "nvim-treesitter/nvim-treesitter", "nvim-neotest/neotest-python", "nvim-neotest/neotest-plenary", "rcarriga/neotest-vim-test", }, config = function() local neotest = require("neotest") neotest.setup({ adapters = { require("neotest-python")({ dap = { justMyCode = false }, runner = "pytest", python = ".venv/bin/python" }), require("neotest-plenary"), require("neotest-vim-test")({ ignore_file_types = { "python", "vim", "lua" }, }), }, }) vim.keymap.set('n', 'tr' ,function() neotest.run.run() end ,{ desc = 'Neo[T]est [R]un' }) vim.keymap.set('n', 'tf' ,function() neotest.run.run(vim.fn.expand("%")) end ,{ desc = 'Neo[T]est Run [F]ile' }) vim.keymap.set('n', 'td' ,function() neotest.run.run({ strategy = "dap" }) end ,{ desc = 'Neo[T]est [D]ebug' }) vim.keymap.set('n', 'to' ,function() neotest.output_panel.toggle() end ,{ desc = 'Neo[T]est [O]utput Panel' }) vim.keymap.set('n', 'ts' ,function() neotest.summary.toggle() end ,{ desc = 'Neo[T]est [S]ummary Sidebar' }) vim.keymap.set('n', ']t' ,function() neotest.jump.next({ status = 'failed' }) end,{ desc = 'Next Failed Test' }) vim.keymap.set('n', '[t' ,function() neotest.jump.prev({ status = 'failed' }) end,{ desc = 'Prev Failed Test' }) end, }