Протестируйте что-нибудь протокол в сценариях оболочки - PullRequest
5 голосов
/ 14 апреля 2009

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

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

Ответы [ 3 ]

9 голосов
/ 14 апреля 2009

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

4 голосов
/ 23 декабря 2012
  • Летучие мыши - это простое тестирование на Bash, тесты могут быть написаны в очень четком синтаксисе.
  • shUnit - самая старая платформа для тестирования оболочки, немного документации.
  • shUnit2 - последний проект, вдохновленный shUnit, но совершенно другой. Тесты могут быть написаны более xUnit моды. Наиболее важно то, что он совместим с POSIX.
4 голосов
/ 14 апреля 2009

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

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

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

...