Before: call ale#assert#SetUpLinterTest('elm', 'ls') After: call ale#assert#TearDownLinterTest() Execute(The default executable path should be correct): call ale#test#SetFilename('../test-files/elm/newapp/src/Main.elm') AssertLinter 'elm-language-server', ale#Escape('elm-language-server') . ' --stdio' Execute(The project root should be detected correctly): AssertLSPProject '' call ale#test#SetFilename('../test-files/elm/newapp/src/Main.elm') AssertLSPProject ale#path#Simplify(g:dir . '/../test-files/elm/newapp') Execute(Should let users configure a global executable and override local paths): call ale#test#SetFilename('../test-files/elm/newapp/src/Main.elm') let g:ale_elm_ls_executable = '/path/to/custom/elm-language-server' let g:ale_elm_ls_use_global = 1 AssertLinter '/path/to/custom/elm-language-server', \ ale#Escape('/path/to/custom/elm-language-server') . ' --stdio' Execute(The language should be correct): AssertLSPLanguage 'elm'