mirror of
https://github.com/dense-analysis/ale.git
synced 2025-12-09 22:14:44 +08:00
This is achieved by switching to JSON, which makes it much easier to avoid confusion between an error message and the next one. It also spares us from having to deal with regular expressions, and eliminates some edge cases that no longer need to be tested.
96 lines
3.5 KiB
Plaintext
96 lines
3.5 KiB
Plaintext
Before:
|
|
call ale#assert#SetUpLinterTest('php', 'phpstan')
|
|
|
|
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')
|
|
|
|
GivenCommandOutput ['0.10.2']
|
|
|
|
After:
|
|
silent! execute 'cd ' . fnameescape(g:old_dir)
|
|
call delete(g:dir, 'rf')
|
|
let g:dir = g:old_dir
|
|
unlet! g:old_dir
|
|
call ale#assert#TearDownLinterTest()
|
|
|
|
Execute(Custom executables should be used for the executable and command):
|
|
let g:ale_php_phpstan_executable = 'phpstan_test'
|
|
|
|
AssertLinter 'phpstan_test',
|
|
\ ale#Escape('phpstan_test') . ' analyze --no-progress --errorFormat json -l ' . ale#Escape('4') . ' %s'
|
|
|
|
Execute(project with level set to 3):
|
|
call ale#test#SetFilename('phpstan-test-files/foo/test.php')
|
|
let g:ale_php_phpstan_level = 3
|
|
|
|
AssertLinter 'phpstan',
|
|
\ ale#Escape('phpstan') . ' analyze --no-progress --errorFormat json -l ' . ale#Escape('3') . ' %s'
|
|
|
|
Execute(Custom phpstan configuration file):
|
|
let g:ale_php_phpstan_configuration = 'phpstan_config'
|
|
|
|
AssertLinter 'phpstan',
|
|
\ ale#Escape('phpstan') . ' analyze --no-progress --errorFormat json -c ' . ale#Escape('phpstan_config') . ' -l ' . ale#Escape('4') . ' %s'
|
|
|
|
Execute(Choose the right format for error format param):
|
|
GivenCommandOutput ['0.10.3']
|
|
|
|
AssertLinter 'phpstan', [
|
|
\ ale#Escape('phpstan') . ' --version',
|
|
\ ale#Escape('phpstan') . ' analyze --no-progress --error-format json -l ' . ale#Escape('4') . ' %s'
|
|
\ ]
|
|
|
|
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 json %s'
|
|
\ ]
|
|
|
|
Execute(Configuration dist file exists in current directory):
|
|
call writefile(['parameters:', ' level: 7'], './phpstan.neon.dist')
|
|
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',
|
|
\ ale#Escape('phpstan') . ' analyze --no-progress --errorFormat json -l ' . ale#Escape('7') . ' %s'
|
|
\ ]
|
|
|
|
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',
|
|
\ ale#Escape('phpstan') . ' analyze --no-progress --errorFormat json -c ' . ale#Escape('phpstan.custom.neon') . ' %s'
|
|
\ ]
|
|
|
|
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 json -a ' . ale#Escape('autoload.php') . ' -l ' . ale#Escape('4') . ' %s'
|