Closed BorysekOndrej closed 3 years ago
Tohle je chyba autora testů. Org prostě nekontroluje kód v sandboxu na výjimky a když nějaká nastane, program spadne. Správný test by měl být zabalený do try: except: bloku. Tohle moc nejde řešit nějak globálně, to si prostě org musí napsat dobré testy.
Problém nastává v tom, že ve skrytých testech už nemůžeš dát informaci řešitelovi na stdout. Tam bych využit "message". Každopádně moc nevím, jak tohle řešit na straně backendu, to si prostě musí pořešit autor úlohy.
Tohle je zjevně systémový problém, vyskytuje se pořád a na různých úlohách. Navrhuji přeformulovat
Tvůj kód se nepodařilo spustit, oprav si chyby!
na
Tvůj kód nelze přeložit, nebo selhal na některém ze skrytých testů. Oprav si chyby!
Update 1: Trošku změněna formulace.
Pořád říkám to stejné:
Tohle je chyba autora testů. Org prostě nekontroluje kód v sandboxu na výjimky a když nějaká nastane, program spadne. Správný test by měl být zabalený do try: except: bloku. Tohle moc nejde řešit nějak globálně, to si prostě org musí napsat dobré testy.
Ať orgové píšou pořádné testy, pak alespon řešitleé poznají, že chyba je u nich.
Formát testů se reálně v nejbližší dobře nezmění. Aktuální hláška není fakticky ani vždy pravdivá, natož vypovídající.
Note do budoucna:
Neexistuje jednoduchý způsob, jak z check souboru vrátit řešiteli informaci, na čem selhal. Například že vyhodil takovou či makovou exception. I když si to autor úlohy pohlídá pomocí try, catch, co řešitel uvidí je Exited with status 1
. A co udělá, zeptá se v diskuzi, jelikož jeho řešení je přece správné, ne?
Opět lobuji za změnu z:
Tvůj kód se nepodařilo spustit, oprav si chyby!
na
Tvůj kód nelze přeložit, nebo selhal (vyhodil výjimku nebo špatně odpověděl) na některém ze skrytých testů. Oprav si chyby!
Je to delší, ale když se to neobjeví v error msg, objeví se to buď na konci textu každé úlohy, nebo pak v diskuzi. :/ A obojí mi osobně přijdou jako horší varianty.
Mělo by být vyřešeno testovacím frameworkem.
Na webu se nám pravidelně objevují dotazy, co znamená ve výstupu kódu "Exited with error status 1". Význam je převážně tento:
Mohli bychom do příštího ročníku udělat status kód pro špatná odpověď na skrytém testu a dávat k němu relevantní hlášku?