Tato stránka popisuje, jak číst výsledky automatických testů ve vašem repozitáři (snímky obrazovky se mohou lehce lišit od vašeho projektu).

Až si otevřete váš předmětový projekt tak uvidíte, že vedle poslední commit zprávy je červená nebo zelená ikonka, které reprezentuje stav projektu.

Ve skutečnosti můžete ještě zahlédnout ikonu pro testování probíhá, ale ta bude brzy nahrazena skutečným výsledkem.

Kliknutím na ikonu se zobrazí podrobný záznam skutečně provedených testů.

Testy jsou rozděleny do skupin, které vždy odpovídají tématům týkajících se jednoho cvičení.

Můžete tak snadno zjistit celkový stav vašeho řešení a rychle zkontrolovat, zda jste připraveni na další cvičení.

Ať už otevřete kteroukoliv z nich, uvidíte přepis akcí, které za vás GitLab provedl.

Pro nás důležitá část začíná s bin/test.sh následována textem podobným tomu následujícímu.

1..5
ok 1 01/dayname.py - Submitted
ok 2 01/dayname.py - Correct Python script
ok 3 01/dayname.py - Module-ready
not ok 4 01/dayname.py - Works
  ---
  message: |
    ...
    -- Program output mismatch --
    output   : Hello, World
    expected : Friday
    --
  ...
ok 5 01/dayname.py - Some other test # skip No sense in testing this

Tohle je výstup v tzv. Test Anything Protocol (TAP) který říká, že proběhlo pět testů (1..5) a tři z nich byly v pořádku (ok 1 ...) zatímco jiné selhaly (not ok 4 ...).

Zpráva pro procházející test je poměrně krátká – říká jen jméno testu (01/dayname.py - submitted). Budeme používat tento formát jména testu pro určení, že soubor je v projektu vůbec přítomen.

Pro selhaný test zpráva obsahuje opět jméno testu (01/dayname.py - Works) po kterém následuje popis chyby. TAP používá syntaxi Pythoních komentářů pro řádky s detaily o chybě (#) nebo řádky odsadí.

Zde vidíme, že test očekával nějaký výstup (tj. Friday), ale naše řešení vypisuje něco jiného (v tomto příkladu Hello, World).

Všimněte si, že pátý test byl označen jako ok i když byl test přeskočen. To je trochu nešťastné omezení TAP protokolu, že přeskočené testy více nezdůrazní. Ale důvod je ten, že přeskočený test není obvykle považován za chybu.

To by vám mělo poskytnout dostatek informací k nápravě. V tomto případě byl program napsán v Pythonu, takže ho můžete pochopitelně odladit na svém počítači.

Prosím, nepoužívejte GitLab jako vaši vývojovou platformu. Vždy vyzkoušejte a odlaďte vaše řešení lokálně – GitLab nemůže sloužit jako náhrada chybějící instalace Pythonu, Linuxu nebo dalšího softwaru na vašem počítači. Úlohy na GitLabu jsou spouštěny na sdíleném stroji – nechte jej k dispozici i ostatním uživatelům.

GitLab vám také pošle e-mail vždy, když některá z těchto automatických akcí selže (v terminologii GitLabu jde o pipeline a job). Notifikace lze vypnout, ale nezapomeňte si pak výsledky zkontrolovat ručně.

Automatické testy jsou aktivní pouze pro úlohy z aktuálních cvičení (obvykle poslední dvě). To je z důvodu snížení zátěže infrastruktury a také aby byl seznam jobů kratší.

Ale vždy je můžete pustit lokálně pomocí ./bin/run-tests.sh a určit, co se má přesně spustit.

./bin/run-tests.sh            # Relevantní testy (toto a minulé cvičení)
./bin/run-tests.sh 01         # Testy ze cvičení 01
./bin/run-tests.sh 04 05      # Testy ze cvičení 04 a 05
./bin/run-tests.sh 06/backup  # Testy pro 06/backup.sh