Как интегрировать PHPUnit в собственный фреймворк

StackOverflow https://stackoverflow.com/questions/845032

  •  20-08-2019
  •  | 
  •  

Вопрос

Я хотел бы интегрировать PHPUnit в свою структуру.Под этим я имею в виду, что вначале мне нужно выполнить некоторую инициализацию, например настройку автозагрузки, прежде чем запускать тесты.

Я хотел бы использовать средство запуска тестов cli, и, если я правильно понимаю, мне нужно создать класс со статическим набором функций(), который возвращает экземпляр PHPUnit_Framework_TestSuite, и добавить тесты в этот набор, как указано в разделе http://www.phpunit.de/manual/current/en/textui.html.

На данный момент я придумал:

class MyTestFW {
    public static function suite() {
        // Do framework initialization here

        $suite = new PHPUnit_Framework_TestSuite();
        $suite->addTest(new SimpleTest());

        // Add more tests

        return $suite;
    }
}

SimpleTest — это очень простой тестовый класс, расширяющий PHPUnit_Framework_TestCase.Когда я запускаю «phpunit MyTestFW», я всегда получаю:

PHPUnit 3.3.16 by Sebastian Bergmann.

E

Time: 0 seconds

There was 1 error:

1) (SimpleTest)
RuntimeException: PHPUnit_Framework_TestCase::$name must not be NULL.

Может кто-нибудь мне немного помочь, пожалуйста?

Это было полезно?

Решение

PHPUnit_Framework_TestCase::$name устанавливается в конструкторе TestCase, поэтому вы можете попробовать следующее:

$suite->addTest(new SimpleTest('simpletest'));

редактировать1:

Я не знаю вашего кода, поэтому не знаю, поможет ли это.
Обычно я вижу это (как замену вышеизложенного, а не дополнение):

$suite->addTestSuite('SimpleTest');

редактировать2:

документация phpunit:Глава 7. Организация тестов.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top