2010-08-24 2 views
1

У меня есть тестовая программа, которая запрашивает ввод от пользователя (stdin), и в зависимости от входов она запрашивает другие входы, которые также необходимо ввести.Поставка входов для stdin программно по строкам?

Есть ли способ, которым я могу иметь скрипт, чтобы все это работало?

+0

Это вполне возможно, но вопрос звучит слишком общий. –

+0

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

ответ

3

Существует программа под названием expect, которая делает практически то, что вы хотите - вы можете вносить сценарии входы и ожидаемые результаты и ответы на основе этих выходов, как простые, так и сложные, как вам нужно. См. Также wikipedia entry для ожидания

+0

, чтобы добавить: Я нашел книгу под названием 'Exploring Expect', что довольно хорошо. –

0

В общем случае yes, thereis.

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

+0

можете ли вы представить простой пример в любом из них? если возможно. –

+0

@ Gollum: Мне понадобится конкретная проблема с конкретными входами и выходами. Можете ли вы предоставить это? –

+0

уверен, если я скажу _foo.exe_ спрашивает _enter ваше имя файла: _ теперь мне нужно ввести имя файла, а затем спрашивает меня _enter типа test_ ..... Я хочу поместить все эти ответы в один файл или какой-нибудь скрипт, который делает это автоматически? Но я не хочу тратить время на то, что я тоже ожидаю. так что это нормально, если вам нужно сэкономить дополнительное время для этого. –

1

Возможно, я неправильно понял, но у вас есть программа, которая читает ввод и что-то делает с ним, и вы просто хотите знать, как автоматизировать предоставление ему некоторого тестового ввода?

Для данного тестового примера вводится ли вход, который вы предоставляете, в зависимости от выхода из программы или каждый раз он одинаковый?

Если вход для данного теста является то же самое каждый раз, а затем просто положить его в текстовый файл и перенаправление стандартного ввода для вашей программы для чтения из этого файла:

myprogram.exe < input.txt 

Если вход отличается каждый времени, для того же теста, то это не помогает. Но для типичного простого теста вы просто хотите ответить «y» на первый вопрос: «n» на второй и «привет мир» на третье или что-то еще.

+0

Стив, программа интерактивна, со многими комбинациями. невозможно вручную вводить все, что тоже каждый раз, когда мы запускаем его. –

Смежные вопросы