adresine rağmen boştu Testing Symfony Apps with a Disposable Database Eğitim Kitabı site noktalarını izledim. Testcase'imde Fikstür ekledim ve SetUp sırasında herhangi bir Hata görülmedi. Armatürlerde bir Hata eklediysem (no. Nullable = false alan boş) Hata gösterilir, bu yüzden bu kod kesinlikle çalıştırılır.Bellekte, sqlite her zaman kurulum
Benim Yapılandırma: my WebTestCase içinde
doctrine:
dbal:
default_connection: memory
connections:
memory:
driver: pdo_sqlite
memory: true
charset: UTF8
Benim SetUp:
protected function setUp() {
parent::setUp();
self::bootKernel();
DatabasePrimer::prime(self::$kernel);
$this->loadFixtures([
'AppBundle\DataFixtures\ORM\UserData',
'AppBundle\DataFixtures\ORM\ArtistData'
]);
}
Oysa benim WebTestCase içinde hiçbir Tablolar var olmadığı anlaşılıyor. Çıktı, masamın mevcut olmadığını söyleyen bir Doktrin Özel Durumunu atar.
dbal:
default_connection: file
connections:
file:
driver: pdo_sqlite
path: %kernel.cache_dir%/test.db
charset: UTF8
herkes söyledi kullanarak başarılı olmuş öğretici veya ünite testleri için sqlite bellek db kullanarak ve herhangi bir ipucu vardır:
SQLSTATE[HY000]: General error: 1 no such table: my_user_table
i bir dosyaya sql_lite geçerseniz, her şey başka hiçbir değişiklik yapmadan çalışıyor ya da fikirler?
Güncelleştirme: Çekirdeğimin kapatılmadığından emin olmak için Kur'u şuna değiştirdim. Bu yardım etmedi:
parent::setUp();
$this->client = $this->getClient();
MemoryDbPrimer::prime(self::$kernel);
$this->loadFixtures([
'AppBundle\DataFixtures\ORM\UserData',
'AppBundle\DataFixtures\ORM\ArtistData'
]);
Bağlantı adını 'memory', ör.' Default_connection: memory' '' default_connection: default' ya da başka bir addan değiştirmeyi denediniz mi? Bu ayrılmış sözcüğün kullanılması (bağlantı verilerinde bir özellik olduğu için) bir soruna neden oluyor olabilir. Fikstür dosyanızı da göndermeye değer olabilir. –
@JohnJoseph: Bunu denedim, yine de farketmedi. Benim fikstür dosya oldukça büyük, bu yüzden bunu yapmak değil. Ayrıca, daha fazla sqllte dosyasında çalıştığından, benim fikstür sorun olduğunu sanmıyorum. –
Yine de, çekirdeğinizin bir şekilde kapatılmasını/yeniden başlatılmasını düşünüyorum.Nerede olduğunu bulmak için, 'print (" bootKernel "(" n ") denilen \ n"); debug_print_backtrace(); '' bootKernel() 'işlevinin üstünde' vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Test/KernelTestCase.php' öğesinin üst kısmında ve ardından etkilenen sınama durumlarından birini çalıştırın. – aferber