Testowanie w Neovim – jak uruchamiam Pytest bez wychodzenia z edytora

W tradycyjnych IDE klikamy przycisk „Run”, wybieramy plik, czekamy aż terminal się otworzy…
W Neovimie chciałem zrobić to szybciej, spokojniej i bez myszki.


Moje narzędzia do testowania

  • neotest – framework do uruchamiania testów z poziomu Neovim
  • neotest-python – plugin do obsługi Pytest
  • nvim-nio – wymagany przez neotest, działa w tle
  • Terminal – czasem uruchamiam testy ręcznie poleceniem

Jak wygląda mój flow?

  1. Otwieram projekt w Neovim:
    bash nvim .

  2. Przechodzę do pliku z testami:
    :Telescope find_files → wybieram plik

  3. Uruchamiam test pod kursorem:
    vim :lua require("neotest").run.run()

  4. Uruchamiam wszystkie testy w pliku:
    vim :lua require("neotest").run.run(vim.fn.expand("%"))

  5. Patrzę na wynik testu w osobnym oknie lub w quickfix


Co jeszcze dodałem?

  • Skróty klawiszowe (np. nnoremap <leader>t :lua require("neotest").run.run()<CR>)
  • Autowykrywanie testów w strukturze tests/
  • Podświetlanie testów, które nie przeszły

Co mi to daje?

  • Nie muszę przełączać się między edytorem a terminalem
  • Mam szybki feedback bez nadmiaru bodźców
  • Mogę uruchamiać dokładnie te testy, które mnie interesują

Co jeszcze chcę dodać?

  • Automatyczne uruchamianie testów po zapisie
  • Integrację z pytest.ini i pytest-cov
  • Zbieranie wyników testów do raportów

Neovim nie robi za mnie testów.
Ale pozwala mi testować na moich zasadach.

— Andrzej 🐢