Напишите интеграционные тесты для Go CLI, задавая серию вопросов / ответов для Windows

У меня есть приложение командной строки для Windows (которое задает ряд вопросов через командную строку), разработанное на Golang, и я хотел бы написать интеграционные тесты для этого приложения. Посмотрел https://github.com/zetamatta/expect. Он может имитировать вывод для каждого заданного вопроса. Пример:

expect("Enter installer name")
send("xxx\r")
expect("Execute it?")
send("y\r")
..
..
..

Приложение golang выполняет некоторую обработку на основе различных заданных вопросов и ответов на них. Он действительно устанавливает некоторые вещи. Если бы мне пришлось писать интеграционные тесты с использованием этого пакета, как он показал бы, прошел ли он тест или нет?

Мой сценарий lua выглядит так:

echo(true)
if spawn([[C:\test.exe]]) then
    expect("Enter installer name?")
    echo(true)
    send("xxx\r")
    expect("Install it?")
    send("y\r")
    expect("~]$")
    echo(true)
    send("exit\r")
end

Выполняю как:

expect.exe sample.lua

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

Каковы ваши условия успеха / неудачи? Вы обрабатываете свои «неудачные» условия в самом сценарии ожидания? Если вы можете проверить «успех» по наблюдаемому побочному эффекту после запуска сценария expect, то вы можете просто проверить этот побочный эффект после запуска expect.

odin243 21.12.2018 23:25
Создание API ввода вопросов на разных языках программирования (Python, PHP, Go и Node.js)
Создание API ввода вопросов на разных языках программирования (Python, PHP, Go и Node.js)
API ввода вопросов - это полезный инструмент для интеграции моделей машинного обучения, таких как ChatGPT, в приложения, требующие обработки...
2
1
120
0

Другие вопросы по теме