2013-06-03 10 views
6

Załóżmy, że pracuję nad oprogramowaniem open-source napisanym w języku interpretowanym, zarządzanym jako repozytorium Git, które wymaga dużego zestawu danych (+300 MB) do podstawowych testów.Duży zestaw danych testowych w repozytorium

Czy dane testowe powinny znajdować się w tym samym repozytorium, co kod źródłowy, ze skryptem compileToZipFile.sh dla publikacji wydawniczych? Czy byłoby lepiej przechowywać jako dwa oddzielne repozytorium, i testRepo?

Wszelkie najlepsze praktyki/konwencje byłyby mile widziane.

Odpowiedz

1

Przypuszczam, że najlepsza odpowiedź na to pytanie byłaby oparta na potrzebie.

W mojej pracy możemy segregować nasze dane Kod/test od rodzaju środowiska jak:

  • test
  • QA
  • Staging
  • Produkcja

Pewne środowiska mają te same dane, co produkcja, podczas gdy inne mają starsze (lub zupełnie inne) dane . Korzyści z tego są następujące:

  • Piaskownice do testowania, wdrażania i "zabawy" z nowymi pomysłami/technologiami.
  • Nie wpływasz na żywe dane skierowane do klienta.
  • Zintegrowane testy mogą być ukierunkowane na/skoncentrowane na pewnych aspektach, które są agnostyczne dla głównej podstawy kodu.

Teraz, jak na swoje pytania ... jak już wspomniano powyżej, segregacja danych pozwala nam na szybkie wprowadzanie zmian i wdrażanie nowych funkcji, ponieważ dane używamy koncentruje się na co testujemy. Mamy trzy pnie, z których wszystkie mają niezależne dane testowe, które są specyficzne dla tego, co należy przetestować. Podczas testowania View mamy zestaw testów, podczas testowania Model mamy inny zestaw testów i podczas testowania Controller mamy kolejny zestaw testów. Wreszcie mamy zestaw testów integracyjnych, które są uruchamiane po wydaniu nowej wersji. We wszystkich przypadkach, z wyjątkiem ostatniego, testy odbywają się z komponentem, dla którego zostały stworzone; ale znowu, ponieważ są to testy integracyjne, ma sens, że są trzymane oddzielnie od trzech części, które sprawdzają.

Myślę, że twój pomysł jest solidny.