Search code examples
vimclojureclojure-testing

Vim Fireplace with nREPL on docker won't run tests


I have a docker container which runs lein repl :start :host 0.0.0.0 :port 7888 (I also exposed the ports via the -p switch like docker run -p 7888:7888).

Now, when I switch to vim and connect to the REPL, everything seems to work as expected. I can evaluate code via cqp and it is evaluated on that docker machine.

However, when I want to run the tests in a test file via the cpr combination, vim shows that it executes (clojure.test/run-tests 'users.models.users-it-test) in its status bar but none of the tests is really executed nor do I get a report on what happened. I can also add any failing tests like

(deftest shouldnt-work
  (is (= 3 4))

but no exception is thrown.

Even stranger: When I execute the tests via cqp and then (clojure.test/run-tests), the tests are actually run and the correct/failing result is printed.

My .vimrc looks like this:

" Plugins
call vundle#begin()

Plugin 'gmarik/Vundle.vim'
Plugin 'danro/rename.vim'
Plugin 'guns/vim-clojure-static'
Plugin 'scrooloose/nerdtree'
Plugin 'ctrlpvim/ctrlp.vim'
Plugin 'tpope/vim-salve'
Plugin 'tpope/vim-classpath'
Plugin 'tpope/vim-fireplace'
Plugin 'paredit.vim'

call vundle#end()
filetype plugin indent on
" End Plugins

" Add and delete spaces in increments of 'shiftwidth' for tabsb
set smarttab
set number
set tabstop=2
set shiftwidth=2
set expandtab
set noesckeys
syntax on

Solution

  • It seems like there was a conflict in my vim files causing the whole thing not to run.

    I now removed rename.vim, ctrlp.vim and vim-clojure-static (since it is already contained in Vim beginning from version 7.4). Also I reordered my plugins, so that it looks like this now:

    Plugin 'gmarik/Vundle.vim'
    Plugin 'altercation/vim-colors-solarized'                                          
    Plugin 'scrooloose/nerdtree'
    Plugin 'paredit.vim'
    Plugin 'tpope/vim-salve'
    Plugin 'tpope/vim-classpath'
    Plugin 'tpope/vim-fireplace'