Before: call ale#assert#SetUpLinterTest('ocaml', 'ocamllsp') Save &filetype let &filetype = 'ocaml' After: call ale#assert#TearDownLinterTest() Execute(The language string should be correct): AssertLSPLanguage 'ocaml' Execute(The project root should be detected correctly): " Use a path outside any project tree to verify no root is found. if has('win32') silent! noautocmd file! C:\dummy_no_project.ml else silent! noautocmd file! /dummy_no_project.ml endif AssertLSPProject '' call ale#test#SetFilename('../test-files/ocamllsp/file.ml') AssertLSPProject ale#path#Simplify(g:dir . '/../test-files/ocamllsp') Execute(The executable should be run using opam exec by default): call ale#test#SetFilename('../test-files/ocamllsp/file.ml') AssertLinter 'ocamllsp', 'opam config exec -- ocamllsp' Execute(The executable should be run directly if use_opam flag is disabled): let g:ale_ocaml_ocamllsp_use_opam = 0 call ale#test#SetFilename('../test-files/ocamllsp/file.ml') AssertLinter 'ocamllsp', 'ocamllsp'