Как стать автором
Обновить

Комментарии 2

По моему свои тесты намного лучше держать в input.txt файлике и оттуда считывать, чем держать их в громоздком java массиве (как в гите у автора).

Я так и не увидел желаемого ответа на вопрос в тайтле статьи, и судя по гуглению никто видимо этим больше не заморачивался. У Яндекса действительно оч. неудобный подход к тестированию задач. Нужно пасовать тест через файл или через stdin, из-за чего ты не можешь просто написать функцию main, где прогнать решение по тестам (как я делаю в leetcode), после чего скопировать решение без main.

Поэтому я на днях написал данный скрипт на Питоне, который берёт на вход путь к собранному приложению и файлу с тестами, и запускает приложение на каждом тесте, сравнивая с ожидаемым выводом.

Формат файла с тестами: строка Test:, потом строки которые будут прокинуты в stdin, затем строка Expected: и строки ожидаемые из stdout. Повторяем на каждый тест. Пример файла можно увидеть в строчке --help скрипта.

Пример запуска:

$ ./run_tests_thru_stdin.py ./a tests.txt
✓❌✓❌
Test 2 failed, expected: ['1 1 2 1 1 1 1 1'], actual ['1 1 1 1 1 1 1 1']
Test 4 failed, expected: ['1 3 1 1 1 1 1 1'], actual ['1 1 1 1 1 1 1 1']
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории