return {
    "nvim-neotest/neotest",
    dependencies = {
        -- For JavaScript, TypeScript (Vite)
        "marilari88/neotest-vitest",
        -- For Python
        "nvim-neotest/neotest-python",
        -- For C, C++, Rust
        "orjangj/neotest-ctest",
        "rouge8/neotest-rust",
    },
    config = function()
        local neotest = require("neotest")
        local keymap = vim.keymap.set

        -- General setup for neotest
        neotest.setup({
            adapters = {
                -- Vite Adapter for JavaScript/TypeScript
                require("neotest-vitest"),
                -- Python Adapter
                require("neotest-python"),
                -- C/C++ Adapter
                require("neotest-ctest"),
                -- Rust Adapter
                require("neotest-rust"),
                -- Java Adapter
                -- require("neotest-java")
            },
        })

        -- Keybinding Setup
        local opts = { noremap = true, silent = true }

        -- Run nearest test
        opts.desc = "Run nearest test"
        keymap("n", "<leader><leader>tr", '<cmd>lua require("neotest").run.run()<cr>', opts)

        -- Run all tests in the current file
        opts.desc = "Run all tests in current file"
        keymap("n", "<leader><leader>tf", '<cmd>lua require("neotest").run.run(vim.fn.expand("%"))<cr>', opts)

        -- Stop running tests
        opts.desc = "Stop tests"
        keymap("n", "<leader><leader>ts", '<cmd>lua require("neotest").run.stop()<cr>', opts)

        opts.desc = "Attach to nearest test"
        keymap("n", "<leader><leader>ta", '<cmd>lua require("neotest").run.attach()<cr>', opts)

        opts.desc = "Jump to next test"
        keymap("n", "<leader><leader>tn", "<cmd>Neotest jump next<cr>", opts)

        opts.desc = "Jump to previous test"
        keymap("n", "<leader><leader>tp", "<cmd>Neotest jump prev<cr>", opts)

        -- Show test summary
        opts.desc = "Show neotest test summary"
        keymap("n", "<leader><leader>tv", "<cmd>Neotest summary<cr>", opts)

        -- Toggle the Neotest panel
        opts.desc = "Show neotest output"
        keymap("n", "<leader><leader>to", "<cmd>Neotest output<cr>", opts)

        opts.desc = "Show neotest output as panel"
        keymap("n", "<leader><leader>tn", "<cmd>Neotest output-panel<cr>", opts)
    end,
}
