为 Windows 的 Go CLI 编写问答式集成测试

我有一个基于 Golang 开发的 Windows 命令行应用程序(通过命令行提出一系列问题),我想为这个应用程序编写集成测试。我看了一下https://github.com/zetamatta/expect。它可以模拟每个问题的输出。 例如:

expect("输入安装程序名称")
send("xxx\r")
expect("执行它?")
send("y\r")
..
..
..

基于不同的问题和答案,该 Golang 应用程序进行一些处理。它执行某些操作。如果我要使用这个软件包编写集成测试,它如何指示是否通过或失败?

我的 lua 脚本如下:

echo(true)
if spawn([[C:\test.exe]]) then
    expect("输入安装程序名称?")
    echo(true)
    send("xxx\r")
    expect("安装它?")
    send("y\r")
    expect("~]$")
    echo(true)
    send("exit\r")
end

我执行如下:

expect.exe sample.lua

它可以自动执行上述问题的输入,而无需手动输入。 但是,最终,我该如何将其组织为测试,并显示所有测试是否成功或失败? 最终,我需要编写几个类似的测试,以涵盖所有可能和反向场景。

点赞