Mam problem przy użyciu wiersza polecenia, aby uruchomić testy: jeśli biegnę PHPUnit tak:nie można uruchomić pojedynczy test z dostawcą danych w PHPUnit
phpunit -–no-configuration -–filter testAdd DataTest DataProviderTest.php
to działa dobrze. Ale używamy wyrażeń regularnych, aby określić dokładnie nazwę metody, które chcemy być testowane:
phpunit -–no-configuration -–filter /::testAdd$/ DataTest DataProviderTest.php
Drugie podejście nie działa niestety. Kod źródłowy jest:
<?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)
);
}
}
?>
Nicea przykład! Zauważ, że liczba zestawów danych również może ciągiem (nazwane DataProvider'ów wykorzystaniem kluczy tablicy w zbiorach danych) więc \ d + może nie przechwycić wszystkiego, ale 'phpunit --filter"/:: test. + (z dat zestaw #. +)?$/"' lub coś jest bardzo fajnym sposobem na uruchomienie wszystkich testów z dostawcami danych;) – edorian
@edorian - Good call Zmieniłem go na '. *', aby przechwycić dowolny zestaw danych –
Myślę, że nowa składnia dla '- -filter' jest zawsze łatwiejszy https://phpunit.de/manual/current/en/textui.html#textui.examples.filter-patterns – martin