2011-12-02 58 views
1

在symfony 1.x中,有些代码可以在没有修改数据库的情况下运行测试。例如,我的一个测试测试用户的注册。执行此测试后,用户始终处于数据库中。 我们如何在不修改数据库的情况下永久执行测试?不要影响数据库测试

+0

跟踪您的修改并在之后撤消它们。或者创建一个测试数据库。一旦你修改了数据库,它已被修改 - 没有“撤消”按钮。所以你必须建立一个你自己。如果您插入一行,请将其删除。如果您修改了一行,请选择它并先将其存储,然后再放回。如果删除一个,也一样。或者(更好)有一个镜像实时数据库的测试数据库,并使用它进行测试。 – DaveRandom

+0

哎唷,这不是sf 1.x中更好的方法吗?我认为用于测试的数据库更好,但是我必须在每次测试之间重新初始化她的安全性否? :/ – bux

回答

2

首先,亚历山大的优秀文章this描述了如何在每次测试后回滚数据库。

也可以使用sqlite作为测试数据库,因为它在内存中,因此速度更快。 This article描述了如何做到这一点。如果您需要在测试之间处理数据,如创建对象然后进行编辑,则此方法非常方便。这不是一个好的实践,但有时候是没有办法的。

我使用分裂的方法,有一个sqlite数据库的速度和做每个测试后亚历山大所述的回滚。它工作得很好:-)

+0

谢谢!我使用第一个链接(亚历山大莎乐美博客),它的工作。我有教条的问题(一些实体检索与教条不是'链接':“一个新的实体是通过关系发现的...”),但如果它链接到这个脚本我不会没有。 – bux