我正在使用Behat来测试Symfony2应用程序.虽然每个功能测试在隔离运行时运行愉快,但尝试一次运行整个测试套件会导致PHP内存不足 - 即使memory_limit设置为2GB或更高.
通过回显每个功能结束时的当前内存使用情况,我可以看到运行的每个功能的内存使用量增加了20到50MB.
所以,我的问题是,"在每个功能运行后,我有什么办法可以释放内存吗?" 似乎每个功能都在启动另一个Symfony应用程序,因此,我理想的解决方案是在使用@AfterFeature挂钩运行每个功能后销毁每个Symfony应用程序(假设正在发生的事情).
更新为:我们正在使用Symfony 2.3.7和Behat 2.5.0.
更新添加:典型用例是;
有没有办法使用Symfony2路由器来构建包含片段标识符的URI?
我们有一个列出许多不同实体的页面(称之为"列表"页面) - 当用户点击其中一个实体详细信息中的链接时,它们将被带到该实体的"编辑"页面.当他们点击"保存"时,我们希望他们返回"列表"页面,但他们刚刚编辑的实体可见.我们已经将每个实体放入一个div,其唯一标识符作为id,因此我们需要的是处理实体更新的控制器将用户带到类似的东西;
www.example.com/entities/list#12345
其中12345是他们刚编辑的实体的id,也是包含"list"页面上同一实体的详细信息的div的id.
当然,我们可以从路由器获取"列表"页面的URL,然后在最后粘贴哈希和实体ID,但这似乎不是很优雅.