Projekt

Ogólne

Profil

Celem zadania jest wykonanie unit testów przy użyciu PHPUnit dla modułów PHP w datasource/src/include/modules

  1. Organizacja testów
  2. Dodatkowe uwagi do tworzenia testów dla modułów PHP
  3. O unit testach
    Unit testy wykonują się bardzo szybko, ale też jest ich bardzo mało. Jako że jest ich mało nie ma potrzeby dzielenia testów na pliki po nazwach funkcji, wewnątrz unit testów można dzielić kod na fragmenty komentarzami
    Przykład
  4. O functional testach i fixture
    Functional testy wykorzystują do działania bazę danych. Fixture uzupełniają bazę danych danymi, co każdy functional test każda tabela w bazie jest czyszczona (TRUNCATE) i uzupełniana od nowa dzięki czemu każdy test na pewno działa na tych samych danach a testy są powtarzalne.
    Główną wadą tego jest wysoki czas potrzebny na wykonanie takich testów dlatego jeśli chcemy sprawdzić jeden konkretny test lepiej uruchomić tylko go (jak zostało to opisane w Organizacja testów).
    Functional testy mogą również na potrzebę testu załadować inne dane, domyślnie ładowane są Fixture które nie mają w nazwie żadnego dodatkowego parametru (Taki zostanie załadowany domyślnie a taki nie zostanie)
  5. Co testować Pokaż
  6. Pomysły na wykorzystanie testów
    To akurat tylko kilka moich pomysłów Pokaż pomysły
    Gdy po sprawdzeniu testów okaże się że któryś nie przeszedł można wysyłać do autora maila/tworzyć jakiegoś automatycznego ticketa.
    Nie powinno być też problemów z tym aby odpowiednio czytać wyniki testów, PHPUnit pozwala na własne klasy do logowania wyników testów i można to łatwo wykorzystać na nasze potrzeby*
  7. Dodatkowo należy
    • Poprawić skrypt mkmod.py który tworzy nowy moduł tak aby dodawał automatycznie odpowiednie foldery w testach i tworzony moduł był obiektowy
    • Poprawić ws_stateful.php aby działał z obiektowymi modułami
    • Dodać do config.json.php dane do bazy danych z której korzystają functional testy
    • Poprawić skrypt reconf.py aby można było podać dane do połączenia dla bazy danych functional testów