Ich bin auf der Suche nach einer Möglichkeit, einen Testfall mehrere Male mit unterschiedlichen Einstellungen zu starten.Einen PHPUnit Testfall mehrmals ausführen
Ich teste eine Datenbankzugriffsklasse (Dutzende von Testmethoden) und möchte es im "normalen Modus" und dann im "Debug-Modus" testen. Beide Modi müssen die gleichen Testergebnisse liefern.
Gibt es eine Möglichkeit, dies in der Testfalleinstellung zu tun? Oder die run() Methode überschreiben? Ich möchte nicht, den Test zweimal schreiben, natürlich :)
Danke
bearbeiten: 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);
}
Schauen Sie sich '@ dataProvider'-Funktionen an, die Testdatensätze ausgeben. – Sven
Ich kenne die Verwendung DataProviders :) Ich möchte nur eine einfache Einstellung der Klasse ändern und dann einfach alle Testmethoden erneut ausführen. Etwas wie: run(); $ class-> setDebug (true); Lauf(); –
Ok, ich nehme an, das ist dann nicht der übliche Fall. Haben Sie versucht, die ursprüngliche Testklasse zu erweitern und die eine Sache in 'setUp()' zu ändern? Dies sollte den gesamten Testcode unter einem neuen Label erben und das Zeug zweimal ausführen. – Sven