Je développe un outil de ligne de commande qui utilise PHP Class. J'ai fait des tests pour mes classes avec couverture.Test PHPUnit Script de ligne de commande avec couverture
Maintenant, je voudrais tester mon script PHP utilisé en ligne de commande.
J'ai trouvé comment déclencher la ligne de commande avec le fil suivant: How do I test a command-line program with PHPUnit?
Je voudrais savoir comment puis-je couvrir les lignes exécutées dans le script de ligne de commande.
J'ai essayé de faire test comme:
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`;
}
}
L'exécution fait avec succès, mais rien est couvert dans le fichier « command.php ».
D'abord, est-ce possible? Ensuite, si c'est le cas, comment puis-je faire pour couvrir le script de ligne de commande?
Merci beaucoup pour tous.
Meilleures salutations,
Neoblaster.
Mise à jour: J'ouvre une question sur GitHub: https://github.com/sebastianbergmann/phpunit/issues/2817
Bonjour Marv255, Mon script de ligne de commande n'est pas une classe PHP, mais il en utilise un. Veuillez trouver ici le script correspondant: [Command.php] (https://github.com/neooblaster/SYSLang/blob/master/src/Command.php?ts=3) Ce n'est pas fini, mais c'est peut-être le mauvaise façon de faire l'interface de ligne de commande? Je ne sais pas comment lire la ligne suivante '(nouvelle commande ($ argv)) -> run()' – Neoblaster
En outre, la meilleure façon de créer des scripts de ligne de commande pour php que j'ai jamais vu est [console symfony] (https: // symfony.com/doc/current/components/console.html). S'il vous plaît suivez le lien pour en savoir plus à ce sujet. – marv255