Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.145.12.242] |
|
Сообщ.
#1
,
|
|
|
Есть необходимость протестировать консольное приложение с интерактивным вводом.
Не уверен что выражаюсь однозначно-правильными терминами, поэтому поясню: 1. Есть консольное приложение, которое после запуска просит пользовтеля ввести данные в консоли. 2. После получения ввода, приложение каким-то образом изменяет свое внутреннее состояние, а затем выдает вывод в консоль. 3. Если приложение не завершилось, то оно запрашивает у пользователя очередную порцию данных, затем переходим на пункт 2 Нужно: - Запускать приложение - Передавать ему данные через консоль, имитируя ввод пользователя - Считывать вывод и иметь возможность принимать решение на основе этого вывода - Одновременно тестировать несколько копий этого приложения - Иметь возможность принудительно завершить одно из тестируемых приложений Желательно: - Использовать python - Не использовать платформо-зависимый код Тестируемое приложение сейчас тоже написано на python, но, в идеале, нужна возможность тестировать такое приложение вне зависимости от языка. Что можно использовать для этих целей? Честно говоря, даже не знаю как такое гуглить. Достаточно было бы и этого. |
Сообщ.
#2
,
|
|
|
В библиотеке есть класс Popen. Не пользовался, но похоже он позволяет подключиться к stdin/stdout/stderr консольного процесса.
|
Сообщ.
#3
,
|
|
|
Да, Popen - как раз то что нужно
|
Сообщ.
#4
,
|
|
|
Как воспользовался, не напишешь? Задача нетривиальная, может кому ещё пригодится.
(Свою задачу раскрывать не надо - например, для такой программы: name = input('Your name: ') print('Hello,', name) |