Maison >développement back-end >tutoriel php >Exécuter un seul test, sauter des tests et autres conseils et astuces
Nuno Maduro a récemment introduit la méthode ->only()
de Pestphp pour l'exécution des tests ciblés. Cela a déclenché une exploration de diverses techniques de filtrage, de saut et de ciblage des tests PHP, couvrant le phpunit et le ravageur.
Tout d'abord, Nuno's ->only()
Méthode:
it('returns a successful response', function () { $response = $this->get('/'); $response->assertStatus(200); })->only(); it('another test', function () { // ... })->only();
Cela exécute sélectivement des tests marqués. Le phpunit et le ravageur offrent des options de filtrage plus larges.
Filtrage de test
PEST fournit des indicateurs de ligne de commande pour le filtrage:
pest --dirty pest --bail pest --filter 'returns a successful response' pest --retry pest --group|--exclude-group pest --todo
PHPUnit utilise des options de ligne de commande similaires:
phpunit --filter test_the_application_returns_a_successful_response phpunit --list-groups phpunit --group api phpunit --exclude-group live
Consultez la référence CLI Pest et phpunit --help
pour des options complètes. Les "conseils de Tim Macdonald pour accélérer vos tests de phpunit" sur Laravel News offre d'autres informations.
Test Sauter
Les tests de saute sont précieux pour gérer des tests incomplets ou cassés. Pest utilise ->todo()
:
it('requires a valid email')->todo();
Running pest --todo
les répertorie.
phpunit utilise markTestIncomplete()
:
public function test_the_application_returns_a_successful_response(): void { $this->markTestIncomplete('it requires a valid email'); // ... }
--display-incomplete
Détails des tests incomplets. markTestAsSkipped()
est pour sauter des tests en fonction des conditions (par exemple, plate-forme).
Ciblage des versions PHP / OS
phpunit utilise des attributs:
#[RequiresPhp('8.0')] #[RequiresOperatingSystemFamily('Windows')] public function test_windows_only(): void { // ... }
--display-skipped
Affiche des tests sautés.
Pest offre des fonctionnalités similaires:
it('has home', function () { // })->skipOnPhp('>=8.0.0'); it('has home', function () { // })->skipOnWindows();
INDÉGRATION IDE
Les IDE offrent des raccourcis pour exécuter des tests individuels. La meilleure extension PHPUNIT VS Code prend en charge PHPUNIT et PEST. PHPSTORM offre des capacités d'exécution de test approfondies. Les utilisateurs de texte sublime peuvent tirer parti du plugin sublime-phpunit.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!