protected function configure()
    {
        $this
            ->setName('scan')
            ->setDescription('scan phpunit test files for static code analysis')
            ->setHelp($this->getHelpOutput())
            ->addArgument(
                'phpunit-config',
                InputArgument::OPTIONAL,
                'the source path of your corresponding phpunit xml config file (e.g. ./tests/phpunit.xml)'
            )
            ->addOption(
                'phpunit-config-suite',
                null,
                InputOption::VALUE_OPTIONAL,
                'name of the target test suite inside your php config xml file, this test suite will be scanned'
            )
            ->addOption(
                'raw-scan-path',
                null,
                InputOption::VALUE_OPTIONAL,
                'raw mode option: the source path of your corresponding phpunit test files or a specific testFile (e.g. tests/), this option will always override phpunit.xml settings!'
            )
            ->addOption(
                'raw-autoload-file',
                null,
                InputOption::VALUE_OPTIONAL,
                'raw-mode option: your application autoload file and path (e.g. ../app/autoload.php for running in symfony context), this option will always override phpunit.xml settings!'
            )
            ->addOption(
                'raw-exclude-path',
                null,
                InputOption::VALUE_OPTIONAL,
                'raw-mode option: exclude a specific path from planned scan',
                null
            )
            ->addOption(
                'output-format',
                'f',
                InputOption::VALUE_OPTIONAL,
                'output format of scan result (json|text)',
                'text'
            )
            ->addOption(
                'output-level',
                'l',
                InputOption::VALUE_OPTIONAL,
                'level of output information (0:minimal, 1: normal (default), 2: detailed)',
                1
            )
            ->addOption(
                'stop-on-error',
                null,
                InputOption::VALUE_OPTIONAL,
                'stop on first application error raises',
                false
            )
            ->addOption(
                'stop-on-failure',
                null,
                InputOption::VALUE_OPTIONAL,
                'stop on first detected coverFish failure raises',
                false
            )
        ;
    }