/ / Ogólne planowanie testów jednostkowych - python, perl, testowanie jednostkowe, drzewo, zależności

Ogólne planowanie testów jednostkowych - python, perl, testowanie jednostkowe, drzewo, zależności

Ja (re) piszę program, który wykonuje jednostkę ogólnąplanowanie testów. Obecny program jest mono-gwintowanym programem perlowym, ale jestem skłonny do jego modularyzacji i zrównoleglenia testów, a także rozważam przepisanie go w Pythonie.

Oto, co muszę zrobić:

  • Mam listę testów z następującymi atrybutami:
    • uri: identyfikator URI do testowania (może to być HTTP / HTTPS / SSH / local);
    • zależy: tablica asocjacyjna testów / wartości, od których zależy to badanie;
    • join: lista połączeń DB dodawana podczas wybierania elementów do przetworzenia w tym teście;
    • depends_db: dodatkowe warunki do dodania do zapytania DB podczas wybierania elementów do przetworzenia w tym teście.
  • Program buduje drzewo zależności, zaczynając od testów, które nie mają zależności;
  • dla każdego testu:
    • lista pozycji jest wybierana z bazy danych przy użyciu warunków (wyniki zależnych testów, połączeń i zależy_db);
    • lista pozycji jest wysyłana do URI (przy użyciu POST lub stdin);
    • wynik jest zapisywany jako plik YAML zawierający listę stanu i komentarze do testu dla każdego testowanego przedmiotu;
    • wyniki są przechowywane w DB;
    • test powraca, umożliwiając wykonanie testów zależnych.
  • program generuje raporty (CSV, DB, graphviz) z wykonanych testów.

Głównym zastosowaniem tego programu jest obecnieprzetestuj flotę maszyn przeciwko usługom takim jak tworzenie kopii zapasowych, DNS itp. Testami mogą być: - kopia zapasowa: hostowana na maszynach zapasowych, zwanych przez HTTP, sprawdza, czy kopie zapasowe maszyn poszły dobrze; - DNS: hostowany na komputerze lokalnym, wywoływany przez stdin, sprawdza, czy komputery "fqdn mają prawidłowy wpis DNS.

Czy takie narzędzie / moduł już istnieje? Jaka byłaby najlepsza implementacja, aby to osiągnąć (używając Perla lub Pythona)?

Odpowiedzi:

4 dla odpowiedzi № 1

Tego rodzaju testowanie nie jest testowaniem jednostkowym.

Jeśli zdecydujesz się nie stosować do rad RJH, aby zachować większość kodu, który już napisałeś, zamień testy, aby użyć standardowego narzędzia testowego.