Simpletest запускает все мои тесты дважды.Зачем? - PullRequest
0 голосов
/ 29 октября 2011

У меня есть самый простой набор, над которым я работал для некоторых из моих недавних кодов-оболочек API в PHP.Но каждый раз, когда я запускаю тест, он запускает все тесты дважды.

Мой телефонный код:

require_once(dirname(__FILE__) . '/simpletest/autorun.php');  
require_once('CompanyNameAPI.php');


$test = new TestSuite('API test');
$test->addFile(dirname(__FILE__) . '/tests/authentication_test.php');
if (TextReporter::inCli()) {
    exit ($test->run(new TextReporter()) ? 0 : 1);
} else {
    $test->run(new HtmlReporter());
}

authentication_test.php выглядит следующим образом:

class Test_CallLoop_Authentication extends UnitTestCase {  

    function test_ClassCreate(){
        $class = new CallLoopAPI();
        $this->assertIsA($class, CallLoopAPI);
    }
        //More tests
}

Больше нет включений в autorun.php или других вызовов для простогов пределах authentication_test.php либо.

Идеи?

Ответы [ 2 ]

2 голосов
/ 06 декабря 2011

Вы должны изменить свой вызывающий код следующим образом:

require_once(dirname(__FILE__) . '/simpletest/autorun.php');  
require_once('CompanyNameAPI.php');

$test = new TestSuite('API test');
$test->addFile(dirname(__FILE__) . '/tests/authentication_test.php');

Файл autorun.php автоматически выполняет ваши тесты, неявно вызывая методы run (), когда вы вызываете метод run (), вы снова запускаете тесты.

0 голосов
/ 17 мая 2013

Из документации для простых тестов следует использовать статический метод prefer(REPORTER)

<?php
require_once('show_passes.php');
require_once('simpletest/simpletest.php');
SimpleTest::prefer(new ShowPasses());
require_once('simpletest/autorun.php');

class AllTests extends TestSuite {
    function __construct() {
        parent::__construct('All tests');
        $this->addFile(dirname(__FILE__).'/log_test.php');
        $this->addFile(dirname(__FILE__).'/clock_test.php');
    }
}
?>
...