我又在为Symfony v2.7中的Liip/LiipFunctionalTestBundle而苦苦挣扎。我有两个测试,它们除了通过这个包加载fixture之外什么也不做。如果我在两个类中加载相同的fixture类,则第二个尝试提交他的fixture两次!如果固定装置不同,那么一切都很好。
有没有人有使用这个包的经验?
use Liip\FunctionalTestBundle\Test\WebTestCase as WebTestCase;
class AgencyControllerTest extends WebTestCase
{
public function testOne()
{
$this->loadFixtures([
'Barra\AdminBundle\DataFixtures\ORM\LoadUserData',
]);
}
public function testTwo()
{
$this->loadFixtures([
'Barra\AdminBundle\DataFixtures\ORM\LoadUserData',
'Barra\AdminBundle\DataFixtures\ORM\LoadAgencyData',
]);
}test.log提取
doctrine.DEBUG: DELETE FROM Agency [] []
doctrine.DEBUG: DELETE FROM AppUser [] []
[...]
doctrine.DEBUG: "START TRANSACTION" [] []
doctrine.DEBUG: INSERT INTO AppUser (...) {..1..} []
doctrine.DEBUG: INSERT INTO AppUser (...) {..2..} []
doctrine.DEBUG: INSERT INTO AppUser (...) {..3..} []
doctrine.DEBUG: "COMMIT" [] []
doctrine.DEBUG: DELETE FROM Agency [] []
doctrine.DEBUG: DELETE FROM AppUser [] []
[...]
doctrine.DEBUG: "START TRANSACTION" [] []
doctrine.DEBUG: INSERT INTO Agency (...) {..1..} []
doctrine.DEBUG: INSERT INTO Agency (...) {..2..} []
doctrine.DEBUG: INSERT INTO Agency (...) {..3..} []
doctrine.DEBUG: INSERT INTO AppUser (...) {..1..} []
doctrine.DEBUG: INSERT INTO AppUser (...) {..2..} []
doctrine.DEBUG: INSERT INTO AppUser (...) {..3..} []
doctrine.DEBUG: INSERT INTO AppUser (...) {..1..} [] <---
[2015-10-25 11:39:09] doctrine.DEBUG: "ROLLBACK" [] []
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '1' for key 'UNIQ_8105EAD692FC23A8'发布于 2015-10-26 03:10:31
除了上述错误之外,我切换到推荐的SQLite DB,它工作得很好。但是启用cache_sqlite_db解决了我的问题。这对我来说似乎是一个bug,但至少它现在起作用了。
https://stackoverflow.com/questions/33329450
复制相似问题