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 XO executable should be called): AssertLinter 'xo', ale#Escape('xo') . ' --reporter json --stdin --stdin-filename %s' Execute(The XO executable should be configurable): let b:ale_javascript_xo_executable = 'foobar' AssertLinter 'foobar', ale#Escape('foobar') . ' --reporter json --stdin --stdin-filename %s' Execute(The XO options should be configurable): let b:ale_javascript_xo_options = '--wat' AssertLinter 'xo', ale#Escape('xo') . ' --wat --reporter json --stdin --stdin-filename %s'