Neotest adapter for running Cairo tests in Neovim.
Although the adapter works, it is still early in development and may have some rough edges.
For instance:
- I didn't test it on Windows (though I did take Windows into account when writing the code)
- Only tested on snforge 0.19.0
- I expect output to change slightly between version in which case we will need to add support for multiple versions
Also - see TODO.md for a list of things that may need to be done.
- Supports passing, failing, and ignored tests.
- Supports running from all positions (test, module, file, directory).
- Finds test outside the current working directory.
- Inline diagnostics.
- Supports tests combined with sources.
- Finds tests in both src and tests directories.
- Neovim >= 0.10.0
- Probably works on older versions, but not tested yet.
- Starknet Foundry - for snforge
- Neotest as this is an adapter for it.
- and the rest of Neotest's dependencies (nio, plenary, FixCursorHold)
- nvim-treesitter with the
cairoparser installed.
Install the plugin with your favorite package manager.
{
"nvim-neotest/neotest",
dependencies = {
"nvim-neotest/nvim-nio",
"nvim-lua/plenary.nvim",
"antoinemadec/FixCursorHold.nvim",
"nvim-treesitter/nvim-treesitter",
-- This is where you install the adapter:
"maxandron/neotest-cairo",
},
opts = function()
return {
adapters = {
-- This is where you add the adapter:
require("neotest-cairo"),
},
-- The rest of your Neotest configuration
}
end,
}There are none.
Open an issue if you would like to configure something.
You can run :checkhealth neotest-cairo to review common issues. If you need
help, please open a discussion
here.
You can also enable logging to further inspect what's going on under the hood. Neotest-cairo piggybacks on the Neotest logger. You can enable it like so:
require("neotest.logging"):set_level(vim.log.levels.INFO)Lower the log level further to DEBUG to get even more information. The lowest
level is TRACE, but is not used by this adapter and is only useful when
debugging issues with Neotest.
You can get ahold of the log file's path using
require("neotest.logging"):get_filename(), which usually points to your
~/.local/state/nvim/neotest.log.
The logfile tends to be ginormous and if you are only looking for neotest-cairo
related entries, you can search for the [neotest-cairo] prefix.
neotest-cairo is heavily inspired by neotest-golang.
Having it as a reference made it much easier to write this adapter. The code is clean and well documented.
Thank you!
