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ě zahlednout 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í (a jestli pocházejí z úkolů před nebo po 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..4
ok 1 01/project_name.py - submitted (informative)
not ok 2 01/project_name.py - no readme files at all (ok=20)
# -- output differs --
# expected : project_directory
# actual   : user/project_directory
# --
not ok 3 02/architecture.sh - Submitted (informative)
# ... (output shortened)
#
# File 02/architecture.sh was not submitted.
ok 4 02/architecture.sh - Works (ok=30) # skip File 02/architecture.sh was not submitted.

Tohle je výstup v tzv. Test Anything Protocol (TAP) který říká, že proběhly čtyři testy (1..4) a dva z nich byly v pořádku (ok 1 ...) zatímco jiné selhaly (not ok 2 ...).

Zpráva pro procházející test je poměrně krátká – říká jen jméno testu (01/factor.py - submitted (informative)). 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/project_name.py - no readme files at all (ok=20)) po kterém následuje popis chyby. TAP používá syntaxi Pythoních komentářů pro řádky s detaily o chybě (#).

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

Třetí test selhal, protože soubor nebyl odevzdán. Všimněte si, že čtvrtý test byl označen jako ok i když byl test přeskočen (test nebyl spuštěn protože soubor nebyl vůbec odevzdán). 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.

Každý test obsahuje v závorce také informace týkající se hodnocení.

Slovo informative znamená, že test přímo neovlivňuje hodnocení, ale poskytuje dodatečné informace. Takové testy budou vždy sloužit ke kontrole, zda jste řešení odevzdali pod správným názvem souboru. Nebudeme přijímat řešení odevzdaná s jinými názvy souborů. Mějte také na paměti, že Linux rozlišuje malá a velká písmena v názvech souborů: jmeno_projektu.py a JMENO_projektu.py jsou dva různé soubory.

Text ok=20 zhruba určuje počet bodů, pokud tento test projde. Při vyhodnocování vašich řešení jej můžeme lehce upravit, pokud to uznáme za vhodné. Rozhodně neplánujte vaše řešení tak, abyste s těmito body těsně prošli. Jejich účel je zobrazit relativní důležitost testu, nikoliv přesný počet bodů.

Pro některé testy uvidíte text fail=-10 který říká, kolik bodů odečteme, pokud test selže. To budeme používat pro testy kontrolující dávno známé věci (např. že váš kód nepoužívá v Pythonu import *).

Budeme vždy hodnotit vaše řešení v době termínu odevzdání (tj. podíváme se na stav vašeho projektu v době deadline a tento stav použijeme při sběhnutí testů a počítání bodů). Lze tedy odevzdat nedokončená řešení, množství commitů (verzí, nad kterými jsou spuštěny testy) není omezeno (ale, prosím, nepoužívejte GitLab jako vaše vývojové prostředí).

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ě.

Řešení budeme hodnotit na základě zveřejněných testů, stejně tak budeme využívat bodové hodnocení, které je součástí testů. Pouze ve zvláštních případech budeme množství bodů upravovat.

Budeme též penalizovat pokusy o jakékoliv obcházení testů.

U různých kvízů (tj. výběr z možností nebo textová odpověď) automatické testy jen kontrolují přítomnost odpovědi a základní formát (tj. že jste zadali číslo když bylo číslo očekáváno, nikoliv že je číslo skutečně správně).