मैं अलग-अलग सेटिंग के साथ कई बार टेस्टकेस चलाने का तरीका ढूंढ रहा हूं।एक PHPUnit testcase कई बार चल रहा है
मैं डेटाबेस एक्सेस क्लास (परीक्षण विधियों के दर्जनों) का परीक्षण कर रहा हूं, और इसे "सामान्य मोड" और फिर "डीबग मोड" में जांचना चाहता हूं। दोनों मोडों को एक ही परीक्षा परिणाम देना चाहिए।
क्या टेस्टकेस सेटिंग में ऐसा करने की कोई संभावना है? या रन() विधि को ओवरराइड करना? मैं परीक्षण दो बार लिखने के लिए निश्चित रूप से, नहीं करना चाहती :)
धन्यवाद
संपादित करें: समझ गए!
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);
}
परीक्षण डेटा सेट को उत्सर्जित करने वाले '@ डेटाप्रोवाइडर 'फ़ंक्शंस पर एक नज़र डालें। – Sven
मुझे उपयोग डेटा प्रदाता पता है :) मैं बस कक्षा की एक साधारण सेटिंग बदलना चाहता हूं और फिर बस सभी परीक्षण विधियों को फिर से चला सकता हूं। कुछ ऐसा: रन(); $ वर्ग> setDebug (सही); चलाने(); –
ठीक है, मुझे लगता है कि यह सामान्य मामला नहीं है। क्या आपने मूल परीक्षण वर्ग को विस्तारित करने और 'setUp()' में एक चीज़ को बदलने का प्रयास किया है। यह एक नए लेबल के तहत सभी टेस्ट कोड का उत्तराधिकारी होना चाहिए और सामान को दो बार चलाएं। – Sven