/neotest-zig

Test runner for Zig in Neovim using Neotest backend.

Primary LanguageLuaMIT LicenseMIT

Neotest Zig ⚡

Zig v0.14.0-dev Neovim v0.10

Neotest test runner for Zig.

neotest-zig.mp4

⚙️ Requirements

📦 Setup

Install & configure using the package manager of your choice. Example using lazy.nvim:

return {
	"nvim-neotest/neotest",
	dependencies = {
		"lawrence-laz/neotest-zig", -- Installation
		"nvim-lua/plenary.nvim",
		"nvim-treesitter/nvim-treesitter",
		"antoinemadec/FixCursorHold.nvim",
	},
	config = function()
		require("neotest").setup({
			adapters = {
				-- Registration
				require("neotest-zig")({
					dap = {
						adapter = "lldb",
					}
				}),
			}
		})
	end
}

⭐ Features

  • Can run tests in individual .zig files and projects using build.zig
    • Does not support a mix of individual files and build.zig:w
    • buil.zig must have a standard test step
  • Exact test filtering
  • Timing all tests individually

📄 Logs

Enabling logging in neotest automatically enables logging in neotest-zig as well:

require("neotest").setup({
    log_level = vim.log.levels.TRACE,
    -- ...
})

The logs can be openned by:

:exe 'edit' stdpath('log').'/neotest-zig.log'