Symfony Codeception功能测试:未找到环境变量

时间:2018-05-04 21:47:20

标签: symfony functional-testing codeception symfony4

我在一个新的Symfony 4项目中使用Codeception v2.4.1和PHPUnit 7.1.3。

我创建了一个功能测试,并尝试运行它,并收到错误: ./vendor/bin/codecept运行功能

There was 1 error:

---------
1) CustomerControllerCest: Customers on index
 Test  tests/functional/Controller/Internal/CustomerControllerCest.php:customersOnIndex

  [Symfony\Component\DependencyInjection\Exception\EnvNotFoundException] 
Environment variable not found: "CORS_ALLOW_ORIGIN".

我有一个配置了这个环境的phpunit.xml文件:

 <php>
        <ini name="error_reporting" value="-1" />
        <env name="KERNEL_CLASS" value="App\Kernel" />
        <env name="APP_ENV" value="test" />
        <env name="APP_DEBUG" value="1" />
        <env name="APP_SECRET" value="191a5940854807ee081eaa57aff30562" />
        <env name="SHELL_VERBOSITY" value="-1" />
        <!-- define your env variables for the test env here -->
        <env name="CORS_ALLOW_ORIGIN" value="^https?://localhost:?[0-9]*$" />
    </php>

我也尝试过使用.env.test,并包含了同样的变量:

CORS_ALLOW_ORIGIN=^https?://localhost:?[0-9]*$

我检查了functional.suite.yml,我的环境设置为test:

actor: FunctionalTester
modules:
    enabled:
        - Symfony:
            app_path: 'src'
            environment: 'test'
            em_service: ‘doctrine.orm.entity_manager’
#        - Doctrine2:
#            depends: Symfony
        # add a framework module here
        - \Helper\Functional

不确定问题出在哪里。是否有一个额外的配置,我告诉代码在哪里寻找这些环境变量?

2 个答案:

答案 0 :(得分:0)

我使用CORS_ALLOW_ORIGIN="*" php codecept run并解决了我的问题。

答案 1 :(得分:0)

使用--bootstrap选项,例如。

--bootstrap=config/bootstrap.php 

对于Symfony 4