Before: Save $PATH Save $PATHEXT let $PATHEXT = '.' call ale#test#SetDirectory('/testplugin/test') runtime ale_linters/kotlin/kotlinc.vim let g:command_tail = ' -I ' . ale#Escape(ale#gradle#GetInitPath()) \ . ' -q printClasspath' let g:gradle_init_path = ale#path#Simplify(g:dir . '../../autoload/ale/gradle/init.gradle') After: Restore unlet! g:gradle_init_path unlet! g:command_tail call ale#test#RestoreDirectory() call ale#linter#Reset() Execute(Should return 'gradlew' command if project includes gradle wapper): call ale#test#SetFilename('test-files/gradle/wrapped-project/src/main/kotlin/dummy.kt') AssertEqual \ [ \ ale#path#Simplify(g:dir . '/test-files/gradle/wrapped-project'), \ ale#Escape(ale#path#Simplify(g:dir . '/test-files/gradle/wrapped-project/gradlew')) \ . g:command_tail, \ ], \ ale#gradle#BuildClasspathCommand(bufnr('')) Execute(Should return 'gradle' command if project does not include gradle wapper): call ale#test#SetFilename('test-files/gradle/unwrapped-project/src/main/kotlin/dummy.kt') let $PATH .= (has('win32') ? ';' : ':') \ . ale#path#Simplify(g:dir . '/test-files/gradle') AssertEqual \ [ \ ale#path#Simplify(g:dir . '/test-files/gradle/unwrapped-project'), \ ale#Escape('gradle') . g:command_tail \ ], \ ale#gradle#BuildClasspathCommand(bufnr('')) Execute(Should return empty string if gradle cannot be executed): call ale#test#SetFilename('test-files/gradle/non-gradle-project/src/main/kotlin/dummy.kt') AssertEqual \ ['', ''], \ ale#gradle#BuildClasspathCommand(bufnr(''))