我的网站版本为3.1.12,并使用postgres模块版本0.92。
我刚刚将所有内容升级到3.5.3和1.2。一切都很好,除了我现有和未更改的单元测试中的一些奇怪的行为。似乎在测试以编程方式创建对象时发生,如下所示:
$page=new Page();
$page->Title='Read only success';
$page->write();
在3.1和0.92上,测试将运行然后返回成功。在tmp数据库中完成上述工作。
升级后,相同的测试无需任何修改即可运行并返回成功。只有这一次,工作在当前的实时数据库中完成。在上面的例子中,我的管理站点树中有一个新的草稿页面。
之前有人见过吗?我已经筋疲力尽地寻找答案,并且能够追踪导致这种危险行为的真正原因。
答案 0 :(得分:3)
如果您没有使用灯具文件进行测试,您需要确保告诉SapphireTest使用测试数据库:
protected $usesDatabase = true;
否则创建像这样的DataObject会直接写入主数据库。
如果您正在使用灯具文件,则无论如何都是隐含的,所以只有在您不使用时才需要。