На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: RaD
  
    > [python] автоматическое тестирование интерактивного консольного приложения
      Есть необходимость протестировать консольное приложение с интерактивным вводом.

      Не уверен что выражаюсь однозначно-правильными терминами, поэтому поясню:
      1. Есть консольное приложение, которое после запуска просит пользовтеля ввести данные в консоли.
      2. После получения ввода, приложение каким-то образом изменяет свое внутреннее состояние, а затем выдает вывод в консоль.
      3. Если приложение не завершилось, то оно запрашивает у пользователя очередную порцию данных, затем переходим на пункт 2

      Нужно:
      - Запускать приложение
      - Передавать ему данные через консоль, имитируя ввод пользователя
      - Считывать вывод и иметь возможность принимать решение на основе этого вывода
      - Одновременно тестировать несколько копий этого приложения
      - Иметь возможность принудительно завершить одно из тестируемых приложений

      Желательно:
      - Использовать python
      - Не использовать платформо-зависимый код

      Тестируемое приложение сейчас тоже написано на python, но, в идеале, нужна возможность тестировать такое приложение вне зависимости от языка.


      Что можно использовать для этих целей?
      Честно говоря, даже не знаю как такое гуглить. Достаточно было бы и этого.
      Сообщение отредактировано: WhyNot -
        В библиотеке есть класс Popen. Не пользовался, но похоже он позволяет подключиться к stdin/stdout/stderr консольного процесса.
          Да, Popen - как раз то что нужно
            Как воспользовался, не напишешь? Задача нетривиальная, может кому ещё пригодится.
            (Свою задачу раскрывать не надо - например, для такой программы:
            ExpandedWrap disabled
              name = input('Your name: ')
              print('Hello,', name)
            0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
            0 пользователей:


            Рейтинг@Mail.ru
            [ Script execution time: 0,0249 ]   [ 15 queries used ]   [ Generated: 28.03.24, 10:53 GMT ]