Лучший способ проверить инструменты командной строки?

голоса
13

У меня есть большая коллекция утилит командной строки, которые мы пишем сами и использовать часто. В настоящее время тестирования их очень громоздко, и поэтому мы не делаем так много испытаний, как мы Aught к.

Мне интересно, если кто-то может предложить хорошие методы или инструменты для делать хорошую работу такого рода вещи.

Edit: уточнить это UNIX

Заранее спасибо. Том

Задан 09/12/2008 в 16:46
источник пользователем
На других языках...                            


8 ответов

голоса
4

Использование Кр вы можете писать тесты , которые напоминают интерактивный сеанс работы с оболочкой. Крам будет воспроизводить команды из теста, сравните вывод ссылки, и сообщает о различиях. Формат тестов достаточно гибок и позволяет сопоставить вывод с помощью Perl регулярного выражения или оболочек, как символы.

Ответил 02/07/2015 в 19:34
источник пользователем

голоса
4

Аруба является Огурцы расширение для тестирования приложений командной строки , написанные на любом языке программирования.

Для того, чтобы использовать его, вам нужно будет рубин запустить тесты, но цель Арубы обеспечить библиотеку предопределенных определений шага, так что вам не нужно писать рубиновый код, чтобы сделать работоспособный набор тестов. (Хотя в какой-то момент вы, вероятно, хотите, чтобы написать немного рубина, чтобы сделать несколько специальных шагов.)

Вы можете увидеть сложный пример инструмента командной строки испытанного с Арубы здесь: jingweno / Г.Х.

Ответил 28/02/2014 в 05:56
источник пользователем

голоса
4

Я рекомендую структурировать код вашей инструмент командной строки, так что утилита командной строки является клиентом библиотеки функций и / или классов.

Вместо того, чтобы просто использовать зЬй :: COUT для печати выхода, есть функция библиотеки взять ссылку на ostream, которые по умолчанию STD :: COUT. Когда вы проверяете, обеспечивают зЬй :: stringstream для сбора вывода.

И, наконец, просто сравнить вывод вашей утилиты с ожидаемыми результатами с помощью своей любимой рамки модульного тестирования.

(Прошу прощения за конкретный пример на C ++ ... Я уверен, что есть способы, чтобы сделать подобные вещи и на других языках).

Ответил 10/12/2008 в 03:36
источник пользователем

голоса
3

Вы должны быть в состоянии вызывать их из сценария оболочки (пакетный файл, в операционных системах MS), перенаправить вывод в файл, а затем проверить файл программно убедиться, что он имеет правильный вывод. Я не знаю рамок тестирования, которая автоматизирует это для вас, но это должно быть довольно прямо вперед, чтобы установить его самостоятельно.

Ответил 09/12/2008 в 16:52
источник пользователем

голоса
2

Я сделал немного этого (займет слишком много времени назад хехе) с помощью Ожидать , чтобы проверить, что случилось то , что я, гм, ожидается

Ответил 09/12/2008 в 17:02
источник пользователем

голоса
1

Летучие мыши (Bash Автоматизированная система тестирования) Сэм Стефенсон. Это крошечное, написанное чисто в оболочке и имеет хороший набор функций.

Ранее предложенный Aruba выглядит интересно, но в некоторых случаях это может быть тихими излишним с точки зрения зависимостей (рубин, огурец)

Ответил 17/04/2016 в 10:44
источник пользователем

голоса
0

Вы можете использовать Perl с Test :: Дополнительные библиотеки, которая обеспечивает большую основу для тестирования CLIs. Хотя в первую очередь предназначено для модульного тестирования, вы можете расширить его для тестирования рабочих процессов пользователей.

Некоторые из методов:

 # Various ways to say "ok"
  ok($got eq $expected, $test_name);
  is  ($got, $expected, $test_name);
  isnt($got, $expected, $test_name);

  # Rather than print STDERR "# here's what went wrong\n"
  diag("here's what went wrong");

  like  ($got, qr/expected/, $test_name);
  unlike($got, qr/expected/, $test_name);

  cmp_ok($got, '==', $expected, $test_name);

Ответил 15/01/2015 в 19:19
источник пользователем

голоса
0

Вы можете сделать это из пакетного файла Одер сценариев Windows.

Но я обещаю использовать планировщик задач , как ( http://www.splinterware.com/products/wincron.htm ) или другой свободный / профессиональное программное обеспечение.

Там вы можете легко копировать / вставить командную строку-параметры, которые вы должны меняться дальше, когда вы хотите проверить свое программное обеспечение около 100 раз много ?!

Ответил 09/12/2008 в 16:54
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more