Ich entwickle ein Befehlszeilenprogramm, das PHP-Klasse verwendet. Ich machte Tests für meine Klassen mit Abdeckung.PHPUnit-Test Befehlszeilenskript mit Abdeckung
Jetzt möchte ich mein PHP Script testen, das in der Befehlszeile verwendet wurde.
fand ich, wie Kommandozeile mit dem folgende Threads auslösen: How do I test a command-line program with PHPUnit?
Ich mag würde wissen, wie ich Zeilen in dem Befehlszeile-Skript ausgeführt abdecken kann.
Ich versuchte Test als wie zu machen:
class CommandTest extends \PHPUnit_Framework_TestCase
{
protected static $command = './src/Command.php ';
protected static $testWorkingDir = 'tests/Command';
public function testCLIInstall()
{
$command = self::$command . ' --help';
$output = `$command`;
}
}
Die Ausführung erfolgt erfolgreich, aber nichts ist Abdeckung in der Datei 'Command.php'.
Erstens, ist es möglich? Dann, wenn es ist, wie kann ich für Deckblatt-Skript tun?
Vielen Dank für alles.
Mit freundlichen Grüßen,
Neoblaster.
Update: Ich öffne ein Problem auf GitHub: https://github.com/sebastianbergmann/phpunit/issues/2817
Hallo Marv255, Mein Befehlszeilenskript ist keine PHP-Klasse, aber es verwendet eine. Hier finden Sie das entsprechende Skript: [Command.php] (https://github.com/neooblaster/SYSLang/blob/master/src/Command.php?ts=3) Es ist nicht fertig, aber vielleicht ist es das falsche Art, Befehlszeilenschnittstelle zu machen? So kann ich nicht die folgende Zeile spielen '(neue Befehl ($ argv)) -> run()' – Neoblaster
Außerdem ist der beste Weg, um Kommandozeilenskripte für PHP zu erstellen, die ich je gesehen habe, [Symfony Console] (https: // symfony.com/doc/current/komponenten/console.html). Bitte folgen Sie dem Link, um mehr darüber zu erfahren. – marv255