代码之家  ›  专栏  ›  技术社区  ›  Darius

未找到方面模拟“Go\ParserReflection\ReflectionFile”

  •  1
  • Darius  · 技术社区  · 9 年前

    从他们的文档中不清楚如何配置。

    https://github.com/Codeception/AspectMock

    我没有这样的文件。我应该创建它吗?我应该把它包括在哪里?

    我的codeception目录结构是:

    测试/验收/验收。

    我有文件摘要。php在测试/编码接受/验收中。

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

    我不知道我真的需要排除供应商目录,但我看到了这样的建议。如果这是强制性的,它应该写在我没有看到的自述中。

    我在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 \测试,至少找到了。

    请注意,甚至在运行测试函数之前都会抛出错误。当我试着在类声明之前运行时

    $kernel->init();
    

    1 回复  |  直到 8 年前
        1
  •  1
  •   Naktibalda    9 年前

    _bootstrap.php

    settings:
        bootstrap: _bootstrap.php
    

    到codeception。yml文件

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

    ReflectionFile问题看起来像自动加载问题。