Je ne pense pas que les réponses ci-dessus résolvent mon même problème.
La réponse acceptée n'est pas parfaite. De cette façon, les options personnalisées devraient toujours être placées à la fin de la liste de paramètres, et il n'y a pas d'indicateur pour dire qu'elles sont des options personnalisées. Si le nombre d'options personnalisées dont j'ai besoin n'est pas fixe, je devrais coder beaucoup pour analyser les options personnalisées avec des expressions régulières ou quelque chose comme ça.
La solution des variables d'environnement est bonne, mais pas naturelle. Cela semble bizarre.
VAR1=aaa VAR2=bbb VAR3=ccc ./phpunit-custom-option CustomOptionTest.php
La solution du script shell plus setUp() partage la même faiblesse que celle acceptée. Peut-être devriez-vous coder beaucoup pour analyser le fichier et gérer des nombres imprévisibles d'options personnalisées.
Je ne pense pas que le script de démarrage soit la bonne solution. Il pourrait être utilisé pour gérer automatiquement les tâches sales, en faisant les mêmes choses à chaque fois mais sans bien traiter les parties modifiées.
Je n'aime aucune des réponses ci-dessus.
Et je n'ai pas non plus de bonne idée moi-même. Mais peut-être que ce que j'ai fait pourrait vous donner de l'inspiration. J'ai forké le projet phpunit sur GitHub, et j'ai modifié un peu le code, et je l'ai rendu compatible avec la fonctionnalité d'option personnalisée.
La version modifiée de phpunit pourrait accepter des options personnalisées comme ceci :
./phpuint-custom-option --custom var1=value1 --custom var2=value2 CustomOptionTest.php
Et dans le test, vous pouvez accéder aux options personnalisées en accédant aux variables superglobales $_SERVER
assertEquals('value1', $_SERVER['var1']);
$this->assertEquals('value2', $_SERVER['var2']);
}
}
et vous pouvez trouver mon code ici, et télécharger la version modifiée ici (en cliquant sur le lien "voir le fichier complet" sur la page).
FYI. cet article est une solution similaire.