Как интегрировать PHPUnit в собственный фреймворк
-
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: