Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x

GenerateConfigurationCommand.php

Namespace

PHPUnit\TextUI\Command

File

vendor/phpunit/phpunit/src/TextUI/Command/Commands/GenerateConfigurationCommand.php

View source
<?php

declare (strict_types=1);

/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\TextUI\Command;

use const PHP_EOL;
use const STDIN;
use function fgets;
use function file_put_contents;
use function getcwd;
use function sprintf;
use function trim;
use PHPUnit\Runner\Version;
use PHPUnit\TextUI\XmlConfiguration\Generator;

/**
 * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit
 *
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class GenerateConfigurationCommand implements Command {
    public function execute() : Result {
        print 'Generating phpunit.xml in ' . getcwd() . PHP_EOL . PHP_EOL;
        print 'Bootstrap script (relative to path shown above; default: vendor/autoload.php): ';
        $bootstrapScript = $this->read();
        print 'Tests directory (relative to path shown above; default: tests): ';
        $testsDirectory = $this->read();
        print 'Source directory (relative to path shown above; default: src): ';
        $src = $this->read();
        print 'Cache directory (relative to path shown above; default: .phpunit.cache): ';
        $cacheDirectory = $this->read();
        if ($bootstrapScript === '') {
            $bootstrapScript = 'vendor/autoload.php';
        }
        if ($testsDirectory === '') {
            $testsDirectory = 'tests';
        }
        if ($src === '') {
            $src = 'src';
        }
        if ($cacheDirectory === '') {
            $cacheDirectory = '.phpunit.cache';
        }
        $generator = new Generator();
        $result = @file_put_contents('phpunit.xml', $generator->generateDefaultConfiguration(Version::series(), $bootstrapScript, $testsDirectory, $src, $cacheDirectory));
        if ($result !== false) {
            return Result::from(sprintf(PHP_EOL . 'Generated phpunit.xml in %s.' . PHP_EOL . 'Make sure to exclude the %s directory from version control.' . PHP_EOL, getcwd(), $cacheDirectory));
        }
        // @codeCoverageIgnoreStart
        return Result::from(sprintf(PHP_EOL . 'Could not write phpunit.xml in %s.' . PHP_EOL, getcwd()), Result::EXCEPTION);
        // @codeCoverageIgnoreEnd
    }
    private function read() : string {
        return trim(fgets(STDIN));
    }

}

Classes

Title Deprecated Summary
GenerateConfigurationCommand @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit
RSS feed
Powered by Drupal