Php Symfony2:在自定义环境中运行自动测试

Php Symfony2:在自定义环境中运行自动测试,php,unit-testing,symfony,phpunit,Php,Unit Testing,Symfony,Phpunit,我正在尝试在自定义环境中为RESTAPI运行Symfony 2 PHP单元测试,而不是默认的“测试”环境 目的是能够在任何环境(例如int、prod)中部署rest API后快速执行健全性检查 在创建新内核/客户机时,我设法将环境传递给WebTestCase类。 我的问题是,我现在遇到以下错误: 会话id太长或包含非法字符,有效字符为a-z、a-z、0-9 我可以通过在config.[targetenvironment].yml中将会话存储更改为文件系统来解决这个问题,但我不想在prod中使用文

我正在尝试在自定义环境中为RESTAPI运行Symfony 2 PHP单元测试,而不是默认的“测试”环境

目的是能够在任何环境(例如int、prod)中部署rest API后快速执行健全性检查

在创建新内核/客户机时,我设法将环境传递给WebTestCase类。 我的问题是,我现在遇到以下错误:

会话id太长或包含非法字符,有效字符为a-z、a-z、0-9

我可以通过在config.[targetenvironment].yml中将会话存储更改为文件系统来解决这个问题,但我不想在prod中使用文件系统存储

framework:
    test: ~
    session:
        storage_id: session.storage.filesystem
有办法解决这个问题吗

谢谢

在第11章中有一节介绍。这基本上会拦截所有文件系统调用,因此确保运行的测试没有副作用。如果您直接调用函数(即,如果运行PHPUnit的php实例也是运行您的代码的php实例),这应该可以解决您的问题

但是,如果您的呼叫是通过web服务器进行的,则PHPUnit配置无法控制远程环境。在这种情况下,您可以尝试一种特殊的Apache配置,该配置基于and/or设置一个环境变量,然后在代码中使用该环境变量覆盖默认会话存储,或者您需要的任何其他内容