Before: call ale#assert#SetUpLinterTest('cpp', 'clangcheck') After: call ale#assert#TearDownLinterTest() Execute(The executable should be configurable): AssertLinter 'clang-check', \ ale#Escape('clang-check') \ . ' -analyze %s -extra-arg -Xclang -extra-arg -analyzer-output=text' let b:ale_cpp_clangcheck_executable = 'foobar' " The extra arguments in the command are used to prevent .plist files from " being generated. AssertLinter 'foobar', \ ale#Escape('foobar') \ . ' -analyze %s -extra-arg -Xclang -extra-arg -analyzer-output=text' Execute(The options should be configurable): let b:ale_cpp_clangcheck_options = '--something' AssertLinter 'clang-check', \ ale#Escape('clang-check') \ . ' -analyze %s' \ . ' -extra-arg -Xclang -extra-arg -analyzer-output=text' \ . ' --something' Execute(The build directory should be used when set): let b:ale_cpp_clangcheck_options = '--something' let b:ale_c_build_dir = '/foo/bar' AssertLinter 'clang-check', \ ale#Escape('clang-check') \ . ' -analyze %s --something -p ' . ale#Escape('/foo/bar')