summaryrefslogtreecommitdiff
path: root/dot_config/nvim/lua/plugins/neotest.lua
diff options
context:
space:
mode:
authorIbrahim Muftee <ibrahim@muftee.net>2024-04-11 23:20:57 -0500
committerIbrahim Muftee <ibrahim@muftee.net>2026-07-01 00:23:31 -0400
commita99b211b3bec43ebe3cdfa1899cba227d1d569a4 (patch)
treea648712a5fa523f04670c32dd8eff6c2138b6669 /dot_config/nvim/lua/plugins/neotest.lua
Initial commit
Diffstat (limited to 'dot_config/nvim/lua/plugins/neotest.lua')
-rw-r--r--dot_config/nvim/lua/plugins/neotest.lua40
1 files changed, 40 insertions, 0 deletions
diff --git a/dot_config/nvim/lua/plugins/neotest.lua b/dot_config/nvim/lua/plugins/neotest.lua
new file mode 100644
index 0000000..e2ad2ce
--- /dev/null
+++ b/dot_config/nvim/lua/plugins/neotest.lua
@@ -0,0 +1,40 @@
+return {
+ "nvim-neotest/neotest",
+ cond = not vim.g.vscode,
+ ft = { "python" },
+ dependencies = {
+ "nvim-lua/plenary.nvim",
+ "antoinemadec/FixCursorHold.nvim",
+ "nvim-treesitter/nvim-treesitter",
+ "nvim-neotest/neotest-python",
+ "nvim-neotest/nvim-nio",
+ },
+ opts = function()
+ return {
+ adapters = {
+ require("neotest-python")({
+ -- Use the current Python binary on the path.
+ -- This will usually be a virtual environment.
+ python = "python",
+ runner = "pytest",
+ is_test_file = function(file_path) ---@param file_path string
+ -- I place all of my Python test files in a
+ -- `tests` directory, and they all start with
+ -- `test_` per Pytest conventions.
+ local normalized_path = vim.fs.normalize(file_path)
+ return normalized_path:match("tests/.*%/test_.*%.py$") ~= nil
+ end,
+ }),
+ },
+ }
+ end,
+ config = function(_, opts)
+ require("neotest").setup(opts)
+
+ vim.keymap.set({ "n" }, "<leader>tr", require("neotest").run.run, { desc = "Neotest: run test at cursor" })
+ vim.keymap.set({ "n" }, "<leader>tf", function()
+ require("neotest").run.run(vim.fn.expand("%"))
+ end, { desc = "Neotest: run all tests in current file" })
+ vim.keymap.set({ "n", }, "<leader>ts", require("neotest").summary.toggle, { desc = "Neotest: toggle summary panel" })
+ end,
+}