Before: Save g:ale_ruby_rubocop_executable let g:ale_ruby_rubocop_executable = 'rubocop' runtime ale_linters/ruby/rubocop.vim call ale#test#SetDirectory('/testplugin/test/command_callback') call ale#test#SetFilename('dummy.rb') After: Restore call ale#linter#Reset() call ale#test#RestoreDirectory() Execute(Executable should default to rubocop): AssertEqual \ ale#Escape('rubocop') \ . ' --format json --force-exclusion --stdin ' \ . ale#Escape(ale#path#Simplify(g:dir . '/dummy.rb')), \ ale_linters#ruby#rubocop#GetCommand(bufnr('')) Execute(Should be able to set a custom executable): let g:ale_ruby_rubocop_executable = 'bin/rubocop' AssertEqual \ ale#Escape('bin/rubocop') \ . ' --format json --force-exclusion --stdin ' \ . ale#Escape(ale#path#Simplify(g:dir . '/dummy.rb')), \ ale_linters#ruby#rubocop#GetCommand(bufnr('')) Execute(Setting bundle appends 'exec rubocop'): let g:ale_ruby_rubocop_executable = 'path to/bundle' AssertEqual \ ale#Escape('path to/bundle') . ' exec rubocop' \ . ' --format json --force-exclusion --stdin ' \ . ale#Escape(ale#path#Simplify(g:dir . '/dummy.rb')), \ ale_linters#ruby#rubocop#GetCommand(bufnr(''))