gpt4 book ai didi

php - Symfony2 : running automated tests in a custom environment

转载 作者:搜寻专家 更新时间:2023-10-31 22:12:33 25 4
gpt4 key购买 nike

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

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

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

“session id太长或包含非法字符,有效字符为a-z、A-Z、0-9”

我可以通过在 config.[targetenvironment].yml 中将 session 存储更改为文件系统来解决这个问题,但是我不想在生产环境中使用文件系统存储。

framework:
test: ~
session:
storage_id: session.storage.filesystem

有什么办法可以解决这个问题吗?

谢谢

最佳答案

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

但是,如果您的调用通过 Web 服务器进行,​​则 PHPUnit 配置无法控制远程环境。在那种情况下,您可以尝试一种特殊的 Apache 配置,该配置基于 clients IP address 设置环境变量。和/或 user-agent string然后在您的代码中使用该环境变量来覆盖默认 session 存储或您需要的任何其他内容。

关于php - Symfony2 : running automated tests in a custom environment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11140728/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com