Poszukuję sposobu na uruchamianie testcase wiele razy z innym ustawieniem.Uruchamianie testowania PHPUnit wiele razy
Testuję klasę dostępu do bazy danych (dziesiątki metod testowania) i chcę przetestować ją w "trybie normalnym", a następnie w "trybie debugowania". Oba tryby muszą dawać te same wyniki testu.
Czy jest taka możliwość w ustawieniu testowym? Lub przesłonić metodę run()? Nie chcę pisać test dwa razy, oczywiście :)
Dziękuję
edit: GOT IT!
public function run(PHPUnit_Framework_TestResult $result = NULL)
{
if ($result === NULL) {
$result = $this->createResult();
}
/**
* Run the testsuite multiple times with different debug level
*/
$this->debugLevel = 0;
print "Setting debug level to: " . $this->debugLevel . PHP_EOL;
$result->run($this);
$this->debugLevel = 8;
print "Setting debug level to: " . $this->debugLevel . PHP_EOL;
$result->run($this);
$this->debugLevel = 16;
print "Setting debug level to: " . $this->debugLevel . PHP_EOL;
$result->run($this);
return $result;
}
public function setUp()
{
parent::setUp();
$this->myclass->setOptions('debug', $this->debugLevel);
}
Zobacz funkcje '@ dataProvider', które emitują zestawy danych testowych. – Sven
Znam dane użytkoweProviders :) Chcę tylko zmienić jedno proste ustawienie klasy, a następnie po prostu uruchomić WSZYSTKIE metody badań ponownie. Coś jak: run(); $ class-> setDebug (true); biegać(); –
OK, zakładam, że to nie jest normalny przypadek. Czy próbowałeś rozszerzyć oryginalną klasę testową i zmieniając jedną rzecz w 'setUp()'. To powinno dziedziczyć cały kod testowy pod nową etykietą i uruchamiać dwa razy. – Sven