2009-04-13 2 views
5

Кто-нибудь видел, пытался реализовать или иным образом играл с TAP в оболочке? Мы стремимся создавать модульные тесты на многих языках (не заставляйте меня начинать с того, почему этого пока не существует), и поскольку у нас так много кода Perl, мы будем рассматривать TAP (среди прочего, я представить). Я нашел TAP-библиотеку для C, Perl, конечно, имеет встроенный интерфейс, и я даже нашел API для Java. Но одна область отсутствует, это проверка скрипта оболочки.Протокол Test Anything в сценариях оболочки

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

ответ

9

См. Список TAP Producers для получения списка библиотек. В этом списке вы найдете Tap-functions для кода оболочки.

+1

Я надеялся на что-то, что побежало в Bourne Shell, а не только Bourne Again Shell, но это лучше, чем ничего! – Tanktalus

+1

Оба соединения сломаны. – Lukas

3

Обычно я пишу собственную небольшую тестовую среду для своих сценариев оболочки. Некоторые вещи следует учитывать при этом:

  • При работе с файлами создайте все пути относительно некоторой переменной, которую вы можете изменить в своих тестах.
  • diff(1) отлично подходит для проверки результатов тестирования (и отображать сообщение полезной ошибке пользователю)
  • Использование локальных переменных широко
  • Все должно быть в функции

Это сказал мой «тест framework "- это в основном набор функций оболочки (с именем test*) и функция runTests, которая их вызывает по одному. На самом деле ничего необычного. Тесты создают рабочий каталог для теста, копируют в него все необходимые файлы, запускают функцию, проверяют результаты на отлично подобранный набор файлов.

3
  • Bats Простой тестовый каркас Bash, тесты могут быть написаны в очень четком синтаксисе.
  • shUnit - самая старая рамочная оболочка, небольшая документация.
  • shUnit2 - это совсем недавно проект, вдохновленный shUnit, но совершенно другой. Тесты могут быть написаны более чем на XUnit. Самое главное, это совместимо с POSIX.
Смежные вопросы