main

Простые системы тестов для приложения

Понадобилась мне софтина для автоматизации тестов приложения. Задача следующая: запустить команду, дать 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 и что-то применимое в быту. Тесты выглядят как некий манифест с одной или несколькими последовательностями следующего вида:

    команда <<< ввод

    > вывод

    =код возврата

Из наиболее значимых неудобств - несколько команд приходится писать в одну строку.


  1. stdin, stdout, exitcode[, stderr] ↩