Професионална програма
Loading...
+ Нов въпрос
kossyo avatar kossyo 1 Точки

Как работят unit test-овете в Judge?

Здравейте, някой може ли да обясни как работят unit test-овете в Judge? Какво се случва отдолу? Понякога ми се случва да напиша един unit test и изведнъж в Judge минават 2 теста вместо един. Как става това? Като цяло ми е интересно да разбера, не само заради това. Благодаря предварително. 

Тагове:
0
Общи приказки
VasilKotsev avatar VasilKotsev 825 Точки

Общо взето OJS run-ва unit тестове върху твоя код. До колкото съм разглеждал репото на форка от Ники Костов, това става благодарение на Judge worker-ите, които позволяват execution-а на submission-ите в изолирана среда, след което се пускат тестове върху него. В повечето задачи от Tech Module-a, предполагам се проверява само крайния output, като се сравнява с очаквания и на базата на минати тестове се дават точки. В ООП курсовете, вече се проверява и с reflection структурата на assembly-тата/class-ове/методи и т.н. Не мога да разбера точно какво питаш, надявам се да съм отговорил на въпроса ти.

0
kossyo avatar kossyo 1 Точки

Благодаря ти за оговора. Не знам дали стана ясно, питах за тестовете на тестовете в Judge. Ако вземем трите отделни секции в Judge от определен изпит (Structure, Business Logic и Unit Tests), горе-долу мога да си представя как работи Judge, за да тества първите две неща (Структура и Бизнес логика), но не знам какво прави, за да тества тестовете, които съм написал аз.

Случва ми се да напиша 1 мой тест и като до зипна и пусна в Judge наведнъж минават 2 теста примерно. А аз си мислех, че на всеки Judge тест отговаря един мой метод, но май излиза, че не е така. Друг феномен, който съм забелязал, е че примерно написвам един мой тест, пускам в Judge, минава един (или 2 ?!) теста. Пиша още един тест, събмитвам пак и не щеш ли, в Judge минават 0 теста. И се питам "Е добре де, какво стана с тоя моя тест, дето си минаваше?" Та излиза, че не ми е ясно какво се случва отдолу в Judge, когато той тества моите тестове. Надявам се да стана ясно. Благодаря!

0
MariyanNikov avatar MariyanNikov 16 Точки

За твойте тестове ти пускат счупена структура или бизнес логика,очаквайки теста ти да хване съответния проблем.

Поне такива бяха моите наблюдения.

 

 

0
VasilKotsev avatar VasilKotsev 825 Точки

Със сигурност не мога да кажа, но най-вероятно се пускат тестове върху твойте тестове. Поне така беше на моя изпит преди време по спомен, а може и да бъркам. Друг вариант, които е по-вероятен, е както каза колегата да пускат грешна структура, бизнес логика върху твойте тестове, но това може само хората, които отговарят за курса и са писали изпита да потвърдят.

0