2015-10-22 137 views
3

我有這個問題,我很難解決。我使用的是Codeception 1.8.7,因爲我們需要使用PHP 5.3。Codeception測試運行兩次

正如您在下面的代碼中看到的,它是一個非常簡單的測試來解釋問題。 我聲明一個計數器並顯示它。當運行「tryToTest」方法時,我遞增計數器; 然後我顯示計數器;一次使用echo()和一次使用amGoingTo()方法。

<?php 
use \ApiGuy; 

class debugCest 
{ 

    public $testCounter = 0; 

    public function _before() 
    { 
     echo "Before 1"; 
    } 

    // tests 
    public function tryToTest(ApiGuy $I) { 
     $this->testCounter++; 
     echo "\n COUNTER A: " . $this->testCounter; 
     $I->amGoingTo('show COUNTER B: '. $this->testCounter); 


    } 

} 

現在,當我們運行測試。我們期望tryToTest()方法只能運行一次,對吧?

所以,當我們運行

php codecept run api debugCest.php 

這應該是我們期望的輸出:

Codeception PHP Testing Framework v1.8.7 
Powered by PHPUnit 3.7.37 by Sebastian Bergmann. 

COUNTER A: 1 
Api Tests (1) ----------------------------------------- 
Trying to try to test (debugCest.tryToTest) 
Scenario: 
* I am going to show COUNTER B: 1 
PASSED 

------------------------------------------------------- 

Time: 844 ms, Memory: 7.75Mb 

OK (1 test, 0 assertions) 

但出於某種原因,這是我的輸出,似乎方法「TryToTest」運行兩次? ?

Codeception PHP Testing Framework v1.8.7 
Powered by PHPUnit 3.7.37 by Sebastian Bergmann. 

COUNTER A: 1 
Api Tests (1) ----------------------------------------- 
Trying to try to test (debugCest.tryToTest) 
Scenario: 
* I am going to show COUNTER B: 2 
PASSED 

------------------------------------------------------- 

Time: 844 ms, Memory: 7.75Mb 

OK (1 test, 0 assertions) 

我是我做錯了什麼?爲什麼它運行兩次

編輯:似乎這個問題已修復與較新的版本2.1。 相關問題:https://github.com/Codeception/Codeception/issues/582

回答