2013-08-15 5 views
10

मैं अलग-अलग सेटिंग के साथ कई बार टेस्टकेस चलाने का तरीका ढूंढ रहा हूं।एक 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); 
} 
+8

परीक्षण डेटा सेट को उत्सर्जित करने वाले '@ डेटाप्रोवाइडर 'फ़ंक्शंस पर एक नज़र डालें। – Sven

+0

मुझे उपयोग डेटा प्रदाता पता है :) मैं बस कक्षा की एक साधारण सेटिंग बदलना चाहता हूं और फिर बस सभी परीक्षण विधियों को फिर से चला सकता हूं। कुछ ऐसा: रन(); $ वर्ग> setDebug (सही); चलाने(); –

+0

ठीक है, मुझे लगता है कि यह सामान्य मामला नहीं है। क्या आपने मूल परीक्षण वर्ग को विस्तारित करने और 'setUp()' में एक चीज़ को बदलने का प्रयास किया है। यह एक नए लेबल के तहत सभी टेस्ट कोड का उत्तराधिकारी होना चाहिए और सामान को दो बार चलाएं। – Sven

उत्तर

-1

PHPUnit परीक्षण सजावट प्रदान करता है।वास्तव में सजावटी के साथ क्या करना है इसका उदाहरण उदाहरण के रूप में सजावटी को दोहराना है। PHPUnit_Framework_TestCase उपclassing के आधार पर सजावट एक पुन: प्रयोज्य तरीके से व्यवहार को लागू करने का एक सही तरीका होगा।

संबंधित मुद्दे