Ho un problema quando si utilizza riga di comando per eseguire i test: se corro phpunit come questo:Non è possibile eseguire test di singolo con provider di dati in PHPUnit
phpunit -–no-configuration -–filter testAdd DataTest DataProviderTest.php
funziona benissimo. Ma usiamo un'espressione regolare per specificare esattamente il nome del metodo che vogliamo testare:
phpunit -–no-configuration -–filter /::testAdd$/ DataTest DataProviderTest.php
Il secondo approccio non funziona purtroppo. Il codice sorgente è:
<?php
class DataTest extends PHPUnit_Framework_TestCase
{
/**
* @dataProvider provider
*/
public function testAdd($a, $b, $c)
{
$this->assertEquals($c, $a + $b);
}
public function provider()
{
return array(
array(0, 0, 0),
array(0, 1, 1),
array(1, 0, 1),
array(1, 1, 3)
);
}
}
?>
Bell'esempio! Si noti che il numero di set di dati potrebbe anche una stringa (nome dataproviders utilizzando le chiavi degli array nei set di dati) quindi \ d + potrebbe non catturare tutto, ma 'phpunit --filter"/:: test. + (con dat un insieme #. +)?$/"' o qualcosa è un ottimo modo per eseguire tutti i test con i fornitori di dati;) – edorian
@edorian - Buona chiamata. L'ho cambiato in '. *' per catturare qualsiasi set di dati. –
Penso che la nuova sintassi per '- -filter' è sempre più semplice https://phpunit.de/manual/current/en/textui.html#textui.examples.filter-patterns – martin