All Projects → rcarriga → Vim Ultest

rcarriga / Vim Ultest

Licence: mit
The ultimate testing plugin for (Neo)Vim

Projects that are alternatives of or similar to Vim Ultest

Vim Test
Run your tests at the speed of thought
Stars: ✭ 2,287 (+3167.14%)
Mutual labels:  test-runner, neovim
Meissa
Cross-platform Distributed Test Runner. Executes tests in parallel, time balanced on multiple machines.
Stars: ✭ 66 (-5.71%)
Mutual labels:  test-runner
Vim Outdated Plugins
🔄 Async Vim/Neovim plugin for showing the number of your outdated plugins
Stars: ✭ 44 (-37.14%)
Mutual labels:  neovim
Nvim Hlslens
Hlsearch Lens for Neovim
Stars: ✭ 55 (-21.43%)
Mutual labels:  neovim
Dotfiles
My dotfiles 🚀. Includes configs for neovim, tmux, zsh, alacritty and more.
Stars: ✭ 47 (-32.86%)
Mutual labels:  neovim
Dotfiles
My Neovim + Tmux + Zsh dev setup
Stars: ✭ 60 (-14.29%)
Mutual labels:  neovim
Neoterm
Wrapper of some vim/neovim's :terminal functions.
Stars: ✭ 1,007 (+1338.57%)
Mutual labels:  neovim
Dotfiles
My personal configuration management system
Stars: ✭ 66 (-5.71%)
Mutual labels:  neovim
Coc Bookmark
Bookmark extension for coc.nvim
Stars: ✭ 66 (-5.71%)
Mutual labels:  neovim
Vim Crates
Handle Cargo dependencies like a Rustavimean.
Stars: ✭ 54 (-22.86%)
Mutual labels:  neovim
Neovim Qt
Neovim client library and GUI, in Qt5.
Stars: ✭ 1,057 (+1410%)
Mutual labels:  neovim
Vim Galore Zh cn
Vim 从入门到精通
Stars: ✭ 8,619 (+12212.86%)
Mutual labels:  neovim
Dotfiles
🏠
Stars: ✭ 60 (-14.29%)
Mutual labels:  neovim
Vim Grepper
👾 Helps you win at grep.
Stars: ✭ 1,030 (+1371.43%)
Mutual labels:  neovim
Dotfiles
🏡 dotfiles
Stars: ✭ 66 (-5.71%)
Mutual labels:  neovim
Fennel Nvim
running fennel-lang natively in neovim
Stars: ✭ 44 (-37.14%)
Mutual labels:  neovim
Idempotent Desktop
🛸 NixOS, Xmonad, Neovim
Stars: ✭ 51 (-27.14%)
Mutual labels:  neovim
Vim Floaterm
🌟 Terminal manager for (neo)vim
Stars: ✭ 1,098 (+1468.57%)
Mutual labels:  neovim
Dotfiles
Workstation configuration, provisioning and tools
Stars: ✭ 67 (-4.29%)
Mutual labels:  neovim
Nvim Treesitter
Nvim Treesitter configurations and abstraction layer
Stars: ✭ 1,129 (+1512.86%)
Mutual labels:  neovim

vim-ultest

This plugin is in the early stages of development so there will likely be bugs! If you experience any problems please open an issue with as much detail as possible i.e. error messages, file type, test runner and minimal example.

  1. Introduction
  2. Features
  3. Installation
  4. Usage
    1. Configuration
    2. Commands
    3. Plug mappings
  5. Feedback

Introduction

The ultimate testing plugin for NeoVim

Running tests should be as quick and painless as possible. vim-test is a very powerful and extensive testing plugin, but it can be cumbersome to configure and lacks some features to make it feel like an integrated piece of your editor.

Rather than replacing vim-test altogether, vim-ultest (in name and practice) builds upon vim-test to make it even better while maintaining the ability to use your existing configuration. If you're already using vim-test then switching to vim-ultest is as easy as installing and... well, that's pretty much it.

The goal behind vim-ultest is to make running tests as seamless as possible.

Features

  • Run tests and view results individually
    • Test result markers using signs or virtual text
    • Failure outputs in a floating window
    • Key mappings to jump between failed tests
    • Stop long running tests

Running Example

  • Attach to running processes to debug
    • Currently experimental so please report issues!
    • Uses python's readline library to pass input

debugging

  • Summary window
    • Highlight tests based on current status (running, succeeded, failed)
    • Show test output
    • View all tests currently found in all test files
    • Run tests with key binding

summary

  • Multithreaded (not just asynchronous) to prevent blocking

  • Use existing vim-test configuration

  • Customisable

More features are being worked on. If you have any ideas, feel free to open an issue!

Installation

Requirements:

All users:

Vim only:

Note: Vim support is maintained with a best effort. Due to the differences between Vim and NeoVim and their RPC libraries, it is inevitable that bugs will occur in one and not the other. I primarily use NeoVim so I will catch issues in it myself. Please file bug reports for Vim if you find them!

I have not had the chance to extensively test (Neo)Vim versions, it is recommended to stay on the latest nightly version. If you have issues with missing features, please open an issue with your editor version.

vim-ultest can be installed as usual with your favourite plugin manager. Note: NeoVim users must run :UpdateRemotePlugins after install if they don't use a plugin manager that already does.

dein:

" Vim Only
call dein#add("roxma/nvim-yarp")
call dein#add("roxma/vim-hug-neovim-rpc")

call dein#add("janko/vim-test")
call dein#add("rcarriga/vim-ultest")

vim-plug

" Vim Only
Plug "roxma/nvim-yarp"
Plug "roxma/vim-hug-neovim-rpc"

Plug "janko/vim-test"
Plug "rcarriga/vim-ultest", { "do": ":UpdateRemotePlugins" }

packer.nvim

use { "rcarriga/vim-ultest", requires = {"janko/vim-test"}, run = ":UpdateRemotePlugins" } }

Usage

Configuration

:help ultest-config

Any vim-test configuration should carry over to vim-ultest. See the vim-test documentation on further details for changing test runner and options. If you have compatibility problems please raise an issue.

One change you will notice is that test output is not coloured. This is due to the way the command is run. To work around this you can simply tell your test runner to always output with colour. For example

let test#python#pytest#options = "--color=yes"

let test#javascript#jest#options = "--color=always"

Note: The window to show results relies on the 'updatetime' setting which by default is 4 seconds. A longer 'updatetime' will mean the window takes longer to show automatically but a shorter time means (Neo)Vim will write to disk much more often which can degrade SSDs over time and cause slowdowns on HDDs.

Commands

:help ultest-commands

For example to run the nearest test every time a file is written:

augroup UltestRunner
    au!
    au BufWritePost * UltestNearest
augroup END

Plug mappings

:help ultest-mappings

For example to be able to jump between failures in a test file:

nmap ]t <Plug>(ultest-next-fail)
nmap [t <Plug>(ultest-prev-fail)

For configuration options and more documentation see :h ultest

Feedback

Feel free to open an issue for bug reports, feature requests or suggestions. I will try address them as soon as I can!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].