Aspect mock 'Go \ ParserReflection \ ReflectionFile' не найден

Я пытаюсь использовать аспектный макет с проверками кода.

Из их документации не ясно, как настроить.

https://github.com/Codeception/AspectMock

Включите AspectMock \ Kernel в тесты / _bootstrap.php.

У меня нет такого файла. Должен ли я создать его? Куда его включать?

Моя структура каталогов:

тест / codeception / прием.

У меня есть файл SummaryCest.php в тесте / кодировании / принятии.

Поскольку у меня нет файла _bootstrap.php, я решил попробовать в SummaryCest – перед объявлением класса:

include __DIR__.'/../../../vendor/autoload.php'; // composer autoload $kernel = \AspectMock\Kernel::getInstance(); $kernel->init([ 'debug' => true, 'includePaths' => [__DIR__.'/../../../'], 'excludePaths' => [__DIR__.'../../../vendor'], 'cacheDir' => '/tmp/datamanager', ]); 

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

В includePaths должны быть видны все файлы моего проекта.

У меня есть функция в SummaryCest.php

 public function correctSummaryCounts(AcceptanceTester $I) { \AspectMock\Test::double(SummaryController::class, ['get' => null]); } 

и когда я запускаю тест

 php codecept.phar run test/codeception/acceptance/SummaryCest.php 

Я получаю сообщение

 ==== Redirecting to Composer-installed version in vendor/codeception ==== Codeception PHP Testing Framework v2.3.5 Powered by PHPUnit 6.2.4 by Sebastian Bergmann and contributors. PHP Fatal error: Uncaught Error: Class 'Go\ParserReflection\ReflectionFile' not found in /var/www/warehouseDataManager/vendor/codeception/aspect-mock/src/AspectMock/Intercept/BeforeMockTransformer.php:16 Stack trace: #0 /var/www/warehouseDataManager/vendor/goaop/framework/src/Instrument/Transformer/CachingTransformer.php(124): AspectMock\Intercept\BeforeMockTransformer->transform(Object(Go\Instrument\Transformer\StreamMetaData)) #1 /var/www/warehouseDataManager/vendor/goaop/framework/src/Instrument/Transformer/CachingTransformer.php(83): Go\Instrument\Transformer\CachingTransformer->processTransformers(Object(Go\Instrument\Transformer\StreamMetaData)) #2 /var/www/warehouseDataManager/vendor/goaop/framework/src/Instrument/ClassLoading/SourceTransformingLoader.php(134): Go\Instrument\Transformer\CachingTransformer->transform(Object(Go\Instrument\Transformer\StreamMetaData)) #3 /var/www/warehouseDataManager/vendor/goaop/framework/src/Instrument/ClassLoading/SourceTransformingLoader.php(101): Go\Instrument\ClassLoading\SourceTran in /var/www/warehouseDataManager/vendor/codeception/aspect-mock/src/AspectMock/Intercept/BeforeMockTransformer.php on line 16 

Можете ли вы объяснить мне, как настроить это?

Также я видел в readme

 $userModel = test::double('UserModel', ['tableName' => 'my_users']); 

но тест даже не найден. Поэтому я попытался использовать \ AspectMock \ Test, который, по крайней мере, найден.

Обратите внимание, что ошибка запускается до запуска моей тестовой функции. Когда я пробовал работать до объявления класса

 $kernel->init(); 

он уже дает ту же ошибку.

_bootstrap.php больше не создается автоматически с помощью Codeception. Чтобы включить их, вы должны добавить

 settings: bootstrap: _bootstrap.php 

к файлу codeception.yml и вручную создайте файлы _bootstrap.php в каталоге тестов и в каждом пакете.

http://codeception.com/docs/reference/Configuration

Проблема ReflectionFile выглядит как проблема автозагрузки.