【问题标题】:PHPUnit doesn't see changes in fixturesPHPUnit 没有看到固定装置的变化
【发布时间】:2018-05-01 15:07:02
【问题描述】:

我有一个带有 PHPUnit 5.7.0 的 CakePHP 3.4 项目,并且大量使用了固定装置。现在我注意到,当我更改夹具结构中的某些内容时,例如添加一个新字段,PHPUnit 看不到它。到目前为止,我发现的唯一解决方案是重新启动。

是否正在进行某种缓存?有没有办法强制 PHPUnit 重新加载灯具?

【问题讨论】:

  • 夹具在运行前应清除数据库。你能提供你的夹具和测试的代码吗
  • 这是一大堆代码,所以我需要做很多修剪才能在线发布。您是在谈论 setUp() 和 tearDown() 吗?我假设数据库清除是在测试中完成的,而不是固定装置,对吧?

标签: php phpunit cakephp-3.0


【解决方案1】:

Fixture 在注入前会清除数据,但我不确定它们是否也会清除架构。

当这发生在我身上时,我不得不用

清除 orm 缓存

bin/cake cache clear_all

否则,无论我在灯具中的架构如何更改,它们仍将使用更改之前的缓存架构。

重新启动对我来说是一种奇怪的解决方案,除非您使用某种内存缓存而不是磁盘缓存。

【讨论】:

  • 清除蛋糕缓存似乎有效,谢谢!没想到这样做。重启工作的事实似乎表明 Cakephp 确实使用了某种内存缓存?
  • 是的,这就是我在写答案的最后一行时所想的。也许您在 app.php 文件中使用了 APC 或 MemCache?或者在磁盘上写入重启后被清理的位置?
猜你喜欢
  • 2019-03-14
  • 2017-05-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-01
  • 2014-04-20
  • 2011-10-23
相关资源
最近更新 更多