2011-09-01 11 views
5

Ogólna rada jest taka, że ​​zawsze powinienem przetestować migracje baz danych, ale jak to zrobić, wydaje się być dobrze utrzymanym sekretem;)W jaki sposób mogę przetestować swoje migracje FluentMigrator?

Wybraną przeze mnie strukturą jest FluentMigration.

Co myślę, że chcę zrobić to:

  1. bazy danych migracji do N-1.
  2. Zapisz niektóre dane.
  3. Migracja bazy danych do N.
  4. Odczytaj dane i sprawdź, czy nie zostały utracone.
  5. Sprawdź inne istotne zmiany

Ale nie mogę dowiedzieć się, jak uruchomić migracje z moich testów jednostkowych.

+0

Jest to bardzo test integracyjny, a nie test jednostkowy. Gdybyście wyśmiali bazę danych, testy byłyby zupełnie bezsensowne. Ale to tylko drobna sprzeczka ;-) Odpowiedź Richarda jest tym, czego potrzebujesz. Czy zamierzasz przetestować także migracje w dół? Są to te, które zwykle zawierają błędy, gdy od razu zauważysz, że migracje w górę nie działają. –

+0

Zwykle używam terminu "test jednostkowy" za każdym razem, gdy korzystam z platformy testów jednostkowych. Nie jestem pewien, czy to byłby test integracyjny, nawet jeśli pasuje do definicji; to naprawdę nie ma nic wspólnego z integracją. Ale zgadzam się, to jest drobna kłótnia. –

+0

Dobrze, btw, aby przetestować migracje w dół. –

Odpowiedz

2

skopać migrację w swoich testach integracyjnych tylko bulić do migrate.exe polecenia przy użyciu Process.Start

Na przykład

var migrator = System.Diagnostics.Process.Start("migrator.exe", "/connection \"Data Source=db\\db.sqlite;Version=3;\" /db sqlite /target your.migrations.dll"); 
migrator.WaitForExit(); 

Jeśli używasz MSTest musisz upewnij się, że plik migrator.exe jest dołączony jako element wdrażania lub że określasz ścieżkę dostępu do pliku EXE po uruchomieniu procesu.

+0

Moim zdaniem używanie przedmiotów do wdrażania jest złym nawykiem. Ale nawet jeśli nie używam MSTest, muszę upewnić się, że .exe jest skopiowany do folderu bin? Lub podaj ścieżkę? –

+0

Jeśli używasz xUnit lub podobnego, po prostu dołącz pełną ścieżkę do programu migracji exe –

Powiązane problemy