Before: call ale#assert#SetUpLinterTest('rust', 'rustc') After: call ale#assert#TearDownLinterTest() Execute(The default command should be correct): call ale#test#SetFilename('../test-files/dummy') AssertLinter 'rustc', 'rustc --error-format=json --emit=mir -o /dev/null -' Execute(The options should be configurable): call ale#test#SetFilename('../test-files/dummy') let b:ale_rust_rustc_options = '--foo' AssertLinter 'rustc', 'rustc --error-format=json --foo -' Execute(Some default paths should be included when the project is a Cargo project): call ale#test#SetFilename('../test-files/rust/cargo/testfile.rs') AssertLinter 'rustc', 'rustc --error-format=json --emit=mir -o /dev/null' \ . ' -L ' . ale#Escape(ale#path#GetAbsPath(g:dir, '../test-files/rust/cargo/target/debug/deps')) \ . ' -L ' . ale#Escape(ale#path#GetAbsPath(g:dir, '../test-files/rust/cargo/target/release/deps')) \ . ' -'