代码测试运行两次

时间:2015-10-22 08:27:59

标签: php phpunit codeception

我遇到这个问题,我很难解决。我使用的是Codeception 1.8.7,因为我们需要使用PHP 5.3。

正如您在下面的代码中看到的,它是一个非常简单的测试来解释这个问题。 我宣布一个计数器并显示它。当方法" 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)

但由于某种原因这是我的输出,似乎方法&#34; TryToTest&#34;运行两次??

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

1 个答案:

答案 0 :(得分:1)

似乎这个问题已在新版本2.1中修复。相关问题:https://github.com/Codeception/Codeception/issues/582