我目前正在开展类似bash的项目。但是,我需要用几千个测试来测试这个项目,这些测试无法手动检查。这就是我想自动执行测试的原因。
我的程序使用fgets()
来获取用户输入。我知道如何直接向程序发送参数,但是当程序启动时,它会显示程序的提示。如何 cat 包含stdin测试的文件,使程序能够解释测试? (并在终端中获取程序输出)。
答案 0 :(得分:0)
假设您的所有测试输入都存储在名为“test.input”的文件中(每行都是程序的完整输入),您可以在bash中执行以下操作:
export LINE_NO=0
cat test.input | while read LINE; do echo "$LINE" | ./program > results.$LINE_NO;
LINE_NO=$(($LINE_NO + 1));
done
基本上,对于test.input中的每一行,上面的命令会将它提供给程序并将结果存储在results.0,results.1,results.2等中,其中结果中的数字。 number是test.input文件的行号。
希望这有帮助。