Doctrine 的实体管理器崩溃并停止运行

2024-01-06

因此,当我在 ZF/Doctrine 应用程序上运行测试时,某些测试碰巧破坏了 Doctrine 实体管理器,并且所有顺序测试由于 EM 关闭而失败。

我在 test/bootstrap.php 中设置了 EM:

$application = new Zend_Application(
    APPLICATION_ENV,
    APPLICATION_PATH . '/configs/application.ini'
);
$application->bootstrap();
(...)
$bootstrap = $application->getBootstrap();
$em = $bootstrap->getResource('doctrinemanager');

然后我将其设置在测试 setUp() 函数中($this->_service 是正在测试的服务):

$em = App::getEntityManager();
$this->_em = clone $em;
$this->_service->setEm($this->_em);

然后,当我运行一个导致 EM 抛出异常并关闭的测试时(这对我来说是正确的行为),它在所有测试中保持关闭状态,当然由于 EM 被关闭而失败。正如您可以猜到的那样,这不是我期望的测试行为。

我尝试克隆 EM,然后将其设置到服务中,但没有成功。

有没有一种简单的方法可以使用一些教义方法来重新打开 EM?


不,据我所知,至少没有。解决这个问题的最简单方法是简单地(重新)引导您的应用程序在每个测试的设置阶段运行。所以,每次测试都会有一个新的$application实例和新鲜的、新的$em与它一起。这就是快速解决办法。

正确的解决方案可能是将您的测试与您的Zend_Application。允许您的测试使用简单的实体管理器运行,可能使用模拟连接或到内存 SQLite 数据库 https://stackoverflow.com/questions/1157996/php-sqlite-copying-a-table-from-disk-to-memory。在测试设置阶段仅创建此实体管理器,因此每个测试都会获得一个新的实体管理器。这与上面的快速修复类似,只不过现在您只专门创建一个用于测试的实体管理器,而不是为每个测试引导整个应用程序。它更精简、更简单。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Doctrine 的实体管理器崩溃并停止运行 的相关文章

  • 国家/城市/州验证

    我想使用 PHP 和 jQuery 做以下事情 https www careerbuilder com share register aspx sc cmp1 JS LoginASPX RegNow https www careerbuil
  • 如何将 pChart 创建的图像保存到文件中?

    我正在使用以下内容 chartImage gt autoOutput statistics image png 问题是这段代码将图像输出到浏览器 如果它将图像保存到具有我指定的目录和名称的文件中 我会更喜欢它 我该怎么做呢 我正在查看 pC
  • PHP PDO 和 MySQLi [重复]

    这个问题在这里已经有答案了 我刚刚完成了 PHP 入门课程 整个 stackoverflow 论坛上的人们都建议我切换到 PDO 准备好的语句或 MYSQLi 我简单地检查了手册 但其中大部分内容都超出了我的理解范围 到目前为止我一直在使用
  • PHP MySQL 仅当 IP 是新时才更新列

    我试图让我的脚本在每次 IP 出现新值时将观看次数更新 1 604800秒后 如果同一用户 同一IP 在604800秒后再次回来 则查看计数 1 有人可以帮我吗 Get video id id GET id Get video title
  • 在运行时修改方法/函数

    我一直在研究 php 反射方法 我想做的是在方法打开之后和任何返回值之前注入一些代码 例如我想更改 function foo bar foo bar return foo 并向其中注入一些代码 例如 function foo bar som
  • 使用 preg_replace 缩小 CSS

    我正在尝试使用 preg replace 缩小多个 CSS 文件 实际上 我只是想从文件中删除任何换行符 制表符和注释 以下对我有用 regex array t r n echo preg replace regex file get co
  • Tortoise SVN 合并“@### 必须与 @### 有祖先关系”错误

    背景故事 找到了一份入门级 Web 开发人员的工作 当我开始工作时 首席开发人员就离开了 一切责任都在我身上 没用过SVN 盲目进去 Problem 我不断收到类似错误 svn svn svn xxx project name branch
  • php 是否有内置的 base32 值转换?

    我知道我可以使用 number format 但是有没有办法表示 base32 数字 例如 十六进制可以用0x 来表示 八进制可以用前面的0来表示 php中有什么可以表示base32数字的吗 使用内置函数base convert 例如 To
  • switch 语句中的 continue 2 和break

    我是 PHP 新手 在网上看到了下面的代码 它有continue 2 and break一起在switch case陈述 这是什么意思 foreach elements as element switch element type case
  • 为什么我无法访问 PHP DateTime 类中的 DateTime->date?

    使用DateTime类 如果我尝试运行以下代码 mydate new DateTime echo mydate gt date 我会回复此错误消息 注意 未定义的属性 DateTime date 这没有意义 因为跑步时var dump 在变
  • 我在 php 中执行的这个 include 语句有什么问题吗? [关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我希望这篇文章发布在我的网站上 但它给出了错误 解析错误 语法错误 第 1 行 opt lampp htdocs whi
  • MySQL 将字符串视为整数

    我的申请有很大的问题 在开始之前我会红色这些主题Mysql 将 varchar 视为 int bug https stackoverflow com questions 17843329 mysql treating varchar as
  • 使用准备好的语句的 SQL ORDER BY

    我已经尝试了该代码的所有不同类型的变体 但无法使其工作 任何人都可以指出我正确的方向吗 if isset GET s And isset GET o if strip tags htmlspecialchars GET s s sortin
  • PHPStorm - 如何设置实时编辑[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我刚刚安装 PHPStorm 但在实
  • 如何在 PHP 中获取用户代理

    我使用这个 JS 代码来了解用户使用的浏览器 我想将此 navigator appName 获取到 php 代码以像这样使用它 if appName Internet Explorer blabla 我该怎么做 使用原生 PHP SERVE
  • PHP ArrayAccess 设置多维

    EDIT 我意识到文本量可能令人生畏 这个问题的本质是 如何以可以设置多维值的方式实现 ArrayAccess 我知道这个问题已经被讨论过here https stackoverflow com questions 2881431 arra
  • 从浏览器中删除cookie?

    有什么方法可以指示网络浏览器完全delete一个人的cookie是用PHP设置的吗 我不想expiry或者等待浏览器closed 对于删除 我的意思是实际上不再将其列在 cookie 列表中 尝试这样删除所有 cookie foreach
  • 人类可读的 JSON:又名向 json 转储添加空格和换行符

    是否有一个 简单 脚本可以获取 json 数据并对其进行格式化以使其更具可读性 例如 response is a json encoded string var dump response 上面的内容在一行上输出所有内容 我希望将其缩进并加
  • json支持阿拉伯字符吗?

    我想问一个简单的问题 json 是否支持阿拉伯字符 我的意思是当我搜索类似以下内容时 values database gt get by name echo json encode array returnedFromValue gt va
  • wordpressfunctions.php - 为每个帖子类别使用不同的页面模板

    我想连接到 save post 函数 找出帖子所属的类别 然后为每个类别中的帖子分配不同的页面模板 我已经尝试了大约 30 个不同的版本 但都没有成功 有人可以帮我指出正确的方向吗 add action save post assign c

随机推荐

  • 根据值类型过滤键子列表的接口键

    Problem 给定一个被视为映射的 TypeScript 接口 将唯一键类型与非唯一值类型相关 可以提取 映射到指定值类型的键类型 作为一个具体的例子 从WindowEventMap in lib dom d ts interface W
  • 如何设置 curve_fit 的初始值以找到最佳优化,而不仅仅是局部优化?

    我正在尝试拟合幂律函数 并找到最佳拟合参数 但是 我发现如果参数的初始猜测不同 最佳拟合 输出就会不同 除非我找到正确的初始猜测 否则我可以获得最佳优化 而不是局部优化 有没有办法找到 合适的初始猜测 下面列出了我的代码 请随意提出任何意见
  • Angular 8:对象不支持属性或方法“包含”

    我正在 Angular8 中构建一个应用程序 我在 angular5 6 7 上工作 对于这些应用程序 我取消了 polyfills ts 中存在的导入的注释 对于 Angular 8 它只有 3 个导入 即 classlist js we
  • 将网站表单转换为 PDF 并通过电子邮件发送给网站管理员

    我正在尝试为我的网站创建一个表单 一旦提交 该表单将转换为 PDF 并通过电子邮件发送给我自己 网站管理员 我知道我无法纯粹使用 JQuery Javascript 来完成该操作 我需要使用 PHP 来发送电子邮件 将 HTML 转换为 P
  • 如何在更改值后在运行时保存 ScriptableObject

    我在使用 ScriptableObjects 作为 Unity 应用程序中的保存对象时遇到问题 当我尝试向其中写入值时 一切都工作得很好 但如果我想关闭应用程序并加载 ScriptableObject 的值 这些值将重置为最后的值 这破坏了
  • AVFoundation 声音可以在 iOS 6 模拟器上工作,但不能在设备上工作?

    帮助 我可以在 iOS 模拟器上播放声音 但不能在我的设备上播放声音 这是我的代码 是的 音频文件位于指定位置 它绝对有效 SystemSoundID hashtag NSString path NSBundle mainBundle pa
  • 使用 Java 读取 .jar 清单文件

    所以我试图通过检查 mainfest 文件中的一些值来查看 jar 是否有效 使用java读取和解析文件的最佳方法是什么 我想到使用这个命令来提取文件 jar xvf anyjar jar META INF MANIFEST MF 但我可以
  • 无法通过 Google Apps 脚本打开 Slack 对话框

    我正在尝试使用 google apps 脚本和 Slack 来自动化我的工作 我希望使用 Slack 对话框输入一些文本 以使用 google apps 脚本修改我的 google 电子表格 但是 使用下面的代码 我无法通过以下方式打开对话
  • 如何在 C++ 中将使用 malloc 创建的数组声明为易失性

    我认为下面会给我 10 个易失性整数 volatile int foo 10 但是 我不认为以下内容会做同样的事情 volatile int foo foo malloc sizeof int 10 如果我对此以及如何使用 malloc 拥
  • 如何在 Spark 中通过组聚合滚动时间窗口

    我有一些数据想要按某个列进行分组 然后根据组中的滚动时间窗口聚合一系列字段 以下是一些示例数据 df spark createDataFrame Row date 2016 01 01 group by group1 get avg 5 g
  • HTML 格式的 jasper 报告

    我正在将 jasper 报告库与 GWT 应用程序一起使用 CSV 格式的报告可以很好地生成 但使用 HTML 格式时 它会生成带有缺少图片的图标的 HTML 页面 我知道 jasper 使用名为 PX 的透明图像 但找不到该图像 我怎么解
  • Android 中的 SSL 客户端身份验证

    我需要编写与 Net 服务通信的Android 应用程序 我必须进行服务器 客户端身份验证 我发现了一些有用的主题 这个博客 http blog antoine li index php 2010 10 android trusting s
  • GWT HashMap 与 JSON 之间的转换

    今晚我可能会有点累 但事情是这样的 我想要 GWT HashMap 与 JSON 之间的转换 我将如何实现这一目标 换句话说 我想采取HashMap 获取其 JSON 表示形式 将其存储在某处 然后将其返回到其本机 Java 表示形式 这是
  • 为什么这个 Windows 批处理文件只执行第一行,但所有三行都在命令 shell 中执行?

    我有一个批处理文件 它依次执行三个 Maven 命令 每个命令都可以在脚本中成功执行 本身 但是 当我将所有三个命令添加到同一个文件中时 只有第一个命令在脚本退出之前执行 知道为什么吗 mvn install install file Dg
  • 在asp.net中为Excel工作表提供背景颜色

    我正在 asp net 中执行导出到 Excel 的操作 而不使用任何第三方控件 如何为导出的 Excel 工作表指定背景颜色 根据某些单元格范围 背景颜色可能 不确定 有所不同 比如说单元格 0 5 Excel 中的单元格 A E 是红色
  • Camel Quartz 在路由启动时路由不需要的作业执行

    我有几条路线看起来像 from quartz getJobId cron cronExpression stateful true routeId getJobId autoStartup false to getRouteTo 这些路由可
  • Google Chrome 扩展 + 使用 Facebook 登录 + Parse

    我正在尝试构建一个 google chrome 扩展 一个用例要求用户可以使用 Facebook 登录并通过帖子分享到他们的 Facebook 墙上 正确的申请流程是这样的 用户点击 google chrome 扩展 召唤扩展页面 用户在扩
  • JSF 中有类似 ServletContextListener 的东西吗?

    我想听一下 JSF 应用程序是否启动或停止 就像使用ServletContextListener在普通 Servlet Web 应用程序中 我怎样才能实现这个目标 您可以使用 ApplicationScoped http docs orac
  • SSIS排除Foreach循环容器中的某些文件

    我有一个 SSIS 包 它从特定目录加载 csv 文件 使用表达式和通配符来获取所有文件 目前 FileSpec容器的查找所有具有以下格式的文件 文件名 环境 这工作正常 现在从同一目录加载第二组文件 为了区分这些文件 文件格式为 文件名
  • Doctrine 的实体管理器崩溃并停止运行

    因此 当我在 ZF Doctrine 应用程序上运行测试时 某些测试碰巧破坏了 Doctrine 实体管理器 并且所有顺序测试由于 EM 关闭而失败 我在 test bootstrap php 中设置了 EM application new