My DoctrineFixturesBundle jest zainstalowany i mogę wczytać urządzenie przez linię poleceń, ale jak mogę załadować urządzenia z mojego testu funkcjonalnego?Jak mogę załadować urządzenia z testu funkcjonalnego w Symfony 2
Odpowiedz
Możesz załadować urządzenia w swojej metodzie testu setUp()
, jak widać w this question.
Możesz użyć kodu w pytaniu, ale musisz dołączyć --append
do komendy doctrine:fixtures:load
, aby uniknąć potwierdzenia przez pakiet urządzeń.
Lepszym rozwiązaniem jest zapoznanie się z LiipFunctionalTestBundle, dzięki czemu korzystanie z urządzeń do transmisji danych jest łatwiejsze.
Jeśli używasz Symfony WebTestCase
, istnieje bardzo łatwy sposób na załadowanie urządzeń. Twoja oprawa musi zaimplementować FixtureInterface
; w ten sposób można ją nazwać metodą load()
bezpośrednio w metodzie testu setUp()
. Po prostu trzeba zdać EntityManager
metody load()
, które mogą być nabyte z pojemnika symfony:
public function setUp() {
$client = static::createClient();
$container = $client->getContainer();
$doctrine = $container->get('doctrine');
$entityManager = $doctrine->getManager();
$fixture = new YourFixture();
$fixture->load($entityManager);
}
Tęskni za wszystkimi rzeczami ReferenceRepository - addRef/getRef –
Chciałem zaoferować nieco schludniejszy podejście, jeśli chcesz, aby najpierw oczyścić tabelę z poprzednich danych testowych, na przykład jeśli używasz swoich testów w phpunit.
use Doctrine\Common\DataFixtures\Purger\ORMPurger;
use Doctrine\Common\DataFixtures\Executor\ORMExecutor;
use Doctrine\Common\DataFixtures\Loader;
use Namespace\FakeBundle\DataFixtures\ORM\YourFixtures;
public function setUp()
{
static::$kernel = static::createKernel();
static::$kernel->boot();
$this->em = static::$kernel->getContainer()
->get('doctrine')
->getManager()
;
$loader = new Loader();
$loader->addFixture(new YourFixtures);
$purger = new ORMPurger($this->em);
$executor = new ORMExecutor($this->em, $purger);
$executor->execute($loader->getFixtures());
parent::setUp();
}
Pozwala Oprawy mają być załadowane, (można wcisnąć bardziej do metody oprawy ADD), i oczyścić tabele, zanim zostaną one załadowane. Należy również zauważyć, że MongoDB ma tę samą opcję przy użyciu MongoDBPurger i MongoDBExecutor. Mam nadzieję, że komuś pomogło
Witam, próbuję użyj swojego podejścia, ale '$ executor' zamierza usunąć całą bazę danych, a nie tylko powiązane tabele, dlaczego to zachowanie? Dowolny przykład, jak oczyścić wygenerowane dane podczas ładowania urządzeń? – ReynierPM
Jak już wspomniano, zaleca się użycie LiipFunctionalTestBundle. Następnie należy rozszerzyć WebTestCase z Liip \ FunctionalTestBundle \ Test \ WebTestCase. Umożliwi to wywołanie $this->loadFixtures()
, która przyjmuje jako argument tablicę urządzeń.
$fixtures = array('Acme\MemeberBundle\DataFixtures\ORM\LoadMemberData');
$this->loadFixtures($fixtures);
Więcej szczegółów Napisałem krótki blogpost: http://marcjuch.li/blog/2014/04/06/symfony2-rest-functional-testing-with-fixtures/
- 1. Uwierzytelnianie testu funkcjonalnego Symfony2
- 2. Jak mogę efektywnie używać paginacji z doktryną w Symfony 2?
- 3. Kod testu urządzenia z WatchService
- 4. Jak buforować w Symfony 2?
- 5. Uzyskaj dostęp do kontenera Symfony 2 za pomocą testu jednostkowego?
- 6. Unikalne ograniczenia w Doctrine 2, Symfony 2
- 7. Jak mogę ograniczyć maksymalny czas działania testu urządzenia?
- 8. Konfigurowanie Symfony 2 - Nie można załadować pliku app.php Zasób
- 9. Symfony 2 Obrazy zasobów
- 10. Jak debugować błąd 500 w Symfony 2
- 11. Jak załadować dane z pliku do testu jednostkowego w pythonie?
- 12. Jak zdobyć aktualny pakiet w Symfony 2?
- 13. Jak uzyskać aktualną trasę w Symfony 2?
- 14. Symfony 2 onDelete setNull
- 15. Utwórz ViewHelper w Symfony 2
- 16. Jak zatrzymać Doctrine 2 przed buforowaniem wyniku w Symfony 2?
- 17. Symfony 2 Poprzedni URL
- 18. Autogenerate stubs testu urządzenia w Androidzie studio
- 19. Symfony 2 przykładowa aplikacja?
- 20. Zastępowanie wyjątków Symfony 2?
- 21. symfony 2 ścieżki lesscss
- 22. Jak mogę załadować zoptymalizowany kod w GHCI?
- 23. Aplikacja Symfony 2 z Wordpress jako CMS
- 24. Symfony 2 GeniusesOfSymfony/WebSocketBundle
- 25. Jak przekazać wartość z urządzenia do testu za pomocą clojure.test?
- 26. Symfony 2 wbudowane Formy
- 27. Jak mogę wibracjami urządzenia?
- 28. symfony 2 odpowiednik funkcji url_for() w symfony 1
- 29. Jak wyświetlić widoki testu urządzenia w pliku ember.js?
- 30. Testy funkcjonalne Symfony 2 z wyśmiewanymi usługami
nie moja odpowiedź rozwiązać swoje pytanie? albo wczytaj urządzenia w metodzie setUp(), jak w pytaniu, które zasugerowałem lub użyj LiipFunctionalTestBundle. – nifr
@nifr Dzięki temu, że pasuję do moich potrzeb, użyłem rozwiązania w pytaniu, które napomknąłeś ... Rozważę zalety LiipFunctionalTestBundle ... – Ousmane