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