2017-09-19 6 views
1

코드 테스트와 함께 aspect mock을 사용하려고합니다.Aspect mock 'Go ParserReflection ReflectionFile'을 찾을 수 없습니다.

설명서에서 구성 방법이 명확하지 않습니다.

https://github.com/Codeception/AspectMock

는 테스트/_bootstrap.php에 AspectMock \ 커널을 포함합니다.

나는 이러한 파일이 없습니다. 내가 만들어야하니? 어디서 그것을 포함해야합니까? codeception의

내 디렉토리 구조는 다음과 같습니다

테스트/codeception/수용.

test/codeception/acceptance에 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 

가 어떻게 나를 설명 할 수 메시지가이를 구성하는 나는거야?

또한 나는

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

추가 정보

에서 본 그러나 시험도 찾을 수 없습니다. 그래서 나는 적어도 \ AspectMock \ Test를 사용하려고 노력했다.

테스트 기능을 실행하기 전에 오류가 발생합니다. 클래스 선언 전에 실행 해 보았습니다.

$kernel->init(); 

이미 동일한 오류가 나타납니다.

답변

1

_bootstrap.php 더 이상 Codeception에 의해 파일이 자동으로 생성되지 않습니다. 는

settings: 
    bootstrap: _bootstrap.php 

파일 을 codeception.yml 수동 테스트 디렉토리에 모든 제품군에 파일을 _bootstrap.php 만들 추가 할 필요를 활성화합니다.

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

ReflectionFile 문제는 자동 로딩 문제처럼 보인다.

+0

도움이 되셨습니까? – Naktibalda