Before: call ale#assert#SetUpLinterTest('ada', 'gcc') call ale#test#SetFilename('dummy.adb') function! GetOutputDir(command) abort let l:split_command = split(a:command) let l:index = index(l:split_command, '-o') return l:split_command[l:index + 1] endfunction let b:out_file = GetOutputDir(ale_linters#ada#gcc#GetCommand(bufnr(''))) After: delfunction GetOutputDir unlet! b:out_file call ale#assert#TearDownLinterTest() Execute(The executable should be configurable): AssertLinter 'gcc', \ ale#Escape('gcc') . ' -x ada -c -gnatc' \ . ' -o ' . b:out_file \ . ' -I %s:h' \ . ' -gnatwa -gnatq %t' let b:ale_ada_gcc_executable = 'foo' AssertLinter 'foo', \ ale#Escape('foo') . ' -x ada -c -gnatc' \ . ' -o ' . b:out_file \ . ' -I %s:h' \ . ' -gnatwa -gnatq %t' Execute(The options should be configurable): let g:ale_ada_gcc_options = '--foo --bar' AssertLinter 'gcc', \ ale#Escape('gcc') . ' -x ada -c -gnatc' \ . ' -o ' . b:out_file \ . ' -I %s:h' \ . ' --foo --bar %t'