Before: call ale#test#SetDirectory('/testplugin/test/handler') call ale#test#SetFilename('testfile.less') runtime ale_linters/less/lessc.vim After: call ale#test#RestoreDirectory() call ale#linter#Reset() Execute(The lessc handler should handle errors for the current file correctly): AssertEqual \ [ \ { \ 'lnum': 2, \ 'col': 1, \ 'type': 'E', \ 'text': 'Unrecognised input. Possibly missing something', \ }, \ ], \ ale_linters#less#lessc#Handle(bufnr(''), [ \ 'ParseError: Unrecognised input. Possibly missing something in - on line 2, column 1:', \ '1 vwewww', \ '2 ', \]) Execute(The lessc handler should handle errors for other files in the same directory correctly): AssertEqual \ [ \ { \ 'lnum': 2, \ 'col': 1, \ 'type': 'E', \ 'text': 'Unrecognised input. Possibly missing something', \ 'filename': ale#path#Simplify(g:dir . '/imported.less') \ }, \ { \ 'lnum': 2, \ 'col': 1, \ 'type': 'E', \ 'text': 'Unrecognised input. Possibly missing something', \ 'filename': ale#path#Simplify(g:dir . '/imported.less') \ }, \ ], \ ale_linters#less#lessc#Handle(bufnr(''), [ \ 'ParseError: Unrecognised input. Possibly missing something in imported.less on line 2, column 1:', \ '1 vwewww', \ '2 ', \ 'ParseError: Unrecognised input. Possibly missing something in ./imported.less on line 2, column 1:', \ '1 vwewww', \ '2 ', \]) Execute(The lessc handler should handle errors for files in directories above correctly): AssertEqual \ [ \ { \ 'lnum': 2, \ 'col': 1, \ 'type': 'E', \ 'text': 'Unrecognised input. Possibly missing something', \ 'filename': ale#path#Simplify(g:dir . '/../imported2.less') \ }, \ ], \ ale_linters#less#lessc#Handle(bufnr(''), [ \ 'ParseError: Unrecognised input. Possibly missing something in ../imported2.less on line 2, column 1:', \ '1 vwewww', \ '2 ', \])