我正在为symfony2 app开发一些功能测试。
我遇到了一个问题:当单独执行测试时,它可以正常运行并使数据库处于初始状态。
但是如果我执行整个系列,那么这个测试将不再被隔离,因为数据库事务似乎无法回滚修改。
我使用fixture初始化我的测试,然后对于每个测试,如果我做一些修改,我只是在测试结束时使用事务来回滚它们。
答案 0 :(得分:2)
您不应该在功能测试中使用事务。功能测试通常设法执行需要多个请求的复杂流程。如果您想要回滚仅由一个请求执行的变换,则事务处理最佳。
您应该在每个场景之前/之后实现某种数据库清除和加载过程。
答案 1 :(得分:0)
我刚刚发现我在某处测试过的代码中设置了内存限制。 对不起,谢谢你的帮助。