Простые системы тестов для приложения
Понадобилась мне софтина для автоматизации тестов приложения. Задача следующая: запустить команду, дать stdin, поймать и сравнить stdout, проверить код возврата. Казалось бы, чего проще, пишется на коленке на шелле за пару часов.
Но это же не наш метод! Полез в репу, смотреть чего уже напридумывали на эту тему.
- gnu atheist -- "general purpose command-line testing tool". Тесты описываются каждый в своём файле, на питоне, с использованием предопределённых функций. Разработка заброшена.
- check -- не то, это аналог ctest, который я и так использую. Это система тестирования функций, а не приложения в целом.
- cmdtest -- Опять питон. Уже ближе к требуемому, но писать по 3-4 файла1 на тест - как-то неудобно.
- cucumber -- Руби. Не хотет.
- nunit -- C#. Нахуй. Быстро, решительно. Пусть шарпеи сами им пользуются.
- shunit2 -- shell. Выглядит как то, что я чуть не начал писать, то бишь - наколенщина.
- dejagnu -- Tcl, горячий резерв. Достаточно популярна и проста.
и наконец shelltest -- внезапно Haskell и что-то применимое в быту. Тесты выглядят как некий манифест с одной или несколькими последовательностями следующего вида:
команда <<< ввод
> вывод
=код возврата
Из наиболее значимых неудобств - несколько команд приходится писать в одну строку.
stdin, stdout, exitcode[, stderr] ↩