Для автоматизации тестирования выполненных заданий практикума рекомендуется использовать тестовые наборы: заранее подготовленные файлы с входными данными. В случае реализации консольных приложений (считывающих данные с клавиатуры и выдающих результат на экран) использование тестовых наборов достигается путём перенаправления ввода и вывода. Так, в командном интерпретаторе command.exe операционной системы MS DOS (или cmd.exe ОС Windows NT) имеются простейшие операторы перенаправления ввода-вывода: «>» перенаправить вывод в файл, «|» направить вывод одной программы на вход другой.
Стандартные потоки ввода-вывода для пользовательского процесса. | Перенаправление: на вход подан некоторый файл или вывод направлен в некоторый файл. | Перенаправление: на вход подан результат работы некоторого другого пользовательского процесса. |
Комбинируя операторы перенаправления, можно в итоге получить сложные цепочки потоков ввода-вывода, объединяющие разные процессы и устройства ввода-вывода. Но для выполнения практических заданий для консольных приложений достаточно ограничиться двумя рассмотренными далее случаями.
Чтобы направить содержимое некоторого файла на ввод консольной программы, необходимо распечатать содержимое этого файла с помощью утилиты печати type и перенаправить результат работы type на вход консольной программы. Например, требуется вводить в консольную программу (prog.exe) одни и те же данные с минимальными изменениями. Для этого надо создать текстовый файл (test.txt), в который поместить тестовый набор («Hello world!»).
>copy con test.txt Hello world! ^Z >
Далее, надо выполнить следующую команду:
>type test.txt | prog.exe
Если необходимо протестировать взаимодействие двух консольных программ, при котором одна программа готовит текстовые данные для другой, можно использовать оператор «|» (как показано выше). Но в случае, когда требуется вносить изменения в передаваемые данные, можно сохранить прмежуточный результат в файл, откорректировать его и снова направить на вход второй программе. Чтобы направить результат работы некоторой программы (prog.exe) в файл (test.txt), достаточно написать:
>prog.exe > test.txt