Before: call ale#assert#SetUpLinterTest('javascript', 'xo') call ale#test#SetFilename('testfile.jsx') unlet! b:executable set filetype=javascriptreact runtime autoload/ale/handlers/xo.vim After: call ale#assert#TearDownLinterTest() Execute(The default xo command should be correct): AssertLinter 'xo', ale#Escape('xo') . ' --reporter json --stdin --stdin-filename %s' Execute(The xo executable and command should be configurable): let b:ale_javascript_xo_executable = 'foobar' let b:ale_javascript_xo_options = '--wat' AssertLinter 'foobar', ale#Escape('foobar') \ . ' --wat --reporter json --stdin --stdin-filename %s'