2017-08-21 17:42:18 +00:00
|
|
|
Before:
|
2018-07-15 17:24:53 +00:00
|
|
|
call ale#assert#SetUpLinterTest('php', 'phpstan')
|
2017-08-21 17:42:18 +00:00
|
|
|
|
2019-05-13 13:00:12 +00:00
|
|
|
let g:old_dir = g:dir
|
|
|
|
|
|
|
|
" Create a temporary directory and work within it, otherwise these tests
|
|
|
|
" cannot be run in parallel.
|
|
|
|
let g:dir = tempname()
|
|
|
|
call mkdir(g:dir, '', 0750)
|
|
|
|
silent! execute 'cd ' . fnameescape(g:dir)
|
|
|
|
silent! noautocmd execute 'file ' . fnameescape(ale#path#Simplify(g:dir . '/test.php'))
|
|
|
|
|
|
|
|
call delete('./phpstan.neon')
|
|
|
|
|
2019-04-07 13:58:06 +00:00
|
|
|
GivenCommandOutput ['0.10.2']
|
2018-11-23 09:39:50 +00:00
|
|
|
|
2017-08-21 17:42:18 +00:00
|
|
|
After:
|
2019-05-13 13:00:12 +00:00
|
|
|
silent! execute 'cd ' . fnameescape(g:old_dir)
|
|
|
|
call delete(g:dir, 'rf')
|
|
|
|
let g:dir = g:old_dir
|
|
|
|
unlet! g:old_dir
|
2018-07-15 17:24:53 +00:00
|
|
|
call ale#assert#TearDownLinterTest()
|
2017-08-21 17:42:18 +00:00
|
|
|
|
|
|
|
Execute(Custom executables should be used for the executable and command):
|
|
|
|
let g:ale_php_phpstan_executable = 'phpstan_test'
|
|
|
|
|
2018-07-15 17:24:53 +00:00
|
|
|
AssertLinter 'phpstan_test',
|
2019-05-07 18:38:32 +00:00
|
|
|
\ ale#Escape('phpstan_test') . ' analyze --no-progress --errorFormat raw -l ' . ale#Escape('4') . ' %s'
|
2017-08-21 17:42:18 +00:00
|
|
|
|
|
|
|
Execute(project with level set to 3):
|
|
|
|
call ale#test#SetFilename('phpstan-test-files/foo/test.php')
|
|
|
|
let g:ale_php_phpstan_level = 3
|
|
|
|
|
2018-07-15 17:24:53 +00:00
|
|
|
AssertLinter 'phpstan',
|
2019-05-07 18:38:32 +00:00
|
|
|
\ ale#Escape('phpstan') . ' analyze --no-progress --errorFormat raw -l ' . ale#Escape('3') . ' %s'
|
2017-09-30 16:18:20 +00:00
|
|
|
|
|
|
|
Execute(Custom phpstan configuration file):
|
|
|
|
let g:ale_php_phpstan_configuration = 'phpstan_config'
|
|
|
|
|
2018-07-15 17:24:53 +00:00
|
|
|
AssertLinter 'phpstan',
|
2019-05-07 18:38:32 +00:00
|
|
|
\ ale#Escape('phpstan') . ' analyze --no-progress --errorFormat raw -c ' . ale#Escape('phpstan_config') . ' -l ' . ale#Escape('4') . ' %s'
|
2018-11-23 09:39:50 +00:00
|
|
|
|
|
|
|
Execute(Choose the right format for error format param):
|
2019-04-07 13:58:06 +00:00
|
|
|
GivenCommandOutput ['0.10.3']
|
2018-11-23 09:39:50 +00:00
|
|
|
|
|
|
|
AssertLinter 'phpstan', [
|
|
|
|
\ ale#Escape('phpstan') . ' --version',
|
2019-05-07 18:38:32 +00:00
|
|
|
\ ale#Escape('phpstan') . ' analyze --no-progress --error-format raw -l ' . ale#Escape('4') . ' %s'
|
2019-05-01 22:14:39 +00:00
|
|
|
\ ]
|
|
|
|
|
|
|
|
Execute(Configuration file exists in current directory):
|
|
|
|
call writefile(['parameters:', ' level: 7'], './phpstan.neon')
|
|
|
|
let g:ale_php_phpstan_level = ''
|
|
|
|
let g:ale_php_phpstan_configuration = ''
|
|
|
|
|
|
|
|
AssertLinter 'phpstan', [
|
|
|
|
\ ale#Escape('phpstan') . ' --version',
|
|
|
|
\ ale#Escape('phpstan') . ' analyze --no-progress --errorFormat raw %s'
|
|
|
|
\ ]
|
|
|
|
|
|
|
|
Execute(Configuration file exists in current directory, but force phpstan level):
|
|
|
|
call writefile(['parameters:', ' level: 7'], './phpstan.neon')
|
|
|
|
let g:ale_php_phpstan_configuration = ''
|
|
|
|
let g:ale_php_phpstan_level = '7'
|
|
|
|
|
|
|
|
AssertLinter 'phpstan', [
|
|
|
|
\ ale#Escape('phpstan') . ' --version',
|
2019-05-07 18:38:32 +00:00
|
|
|
\ ale#Escape('phpstan') . ' analyze --no-progress --errorFormat raw -l ' . ale#Escape('7') . ' %s'
|
2019-05-01 22:14:39 +00:00
|
|
|
\ ]
|
|
|
|
|
|
|
|
Execute(Configuration file exists in current directory, but force phpstan configuration):
|
|
|
|
call writefile(['parameters:', ' level: 7'], './phpstan.neon')
|
|
|
|
let g:ale_php_phpstan_level = ''
|
|
|
|
let g:ale_php_phpstan_configuration = 'phpstan.custom.neon'
|
|
|
|
|
|
|
|
AssertLinter 'phpstan', [
|
|
|
|
\ ale#Escape('phpstan') . ' --version',
|
2019-05-07 18:38:32 +00:00
|
|
|
\ ale#Escape('phpstan') . ' analyze --no-progress --errorFormat raw -c ' . ale#Escape('phpstan.custom.neon') . ' %s'
|
2018-11-23 09:39:50 +00:00
|
|
|
\ ]
|
2019-05-12 20:12:47 +00:00
|
|
|
|
|
|
|
Execute(Autoload parameter is added to the command):
|
|
|
|
let g:ale_php_phpstan_autoload = 'autoload.php'
|
|
|
|
|
|
|
|
AssertLinter 'phpstan',
|
|
|
|
\ ale#Escape('phpstan') . ' analyze --no-progress --errorFormat raw -a ' . ale#Escape('autoload.php') . ' -l ' . ale#Escape('4') . ' %s'
|