3
我目前正在开发一个类似bash的项目。但是,我需要用几千个测试测试这个项目,不能手动检查。这就是为什么我想自动执行测试。使用fgets()自动测试程序
我的程序使用fgets()
来获得用户输入。我知道如何直接向程序发送参数,但是当程序启动时,它会显示程序的提示。如何cat一个包含stdin测试以使程序能够解释测试的文件? (并获得终端中的程序输出)。
我目前正在开发一个类似bash的项目。但是,我需要用几千个测试测试这个项目,不能手动检查。这就是为什么我想自动执行测试。使用fgets()自动测试程序
我的程序使用fgets()
来获得用户输入。我知道如何直接向程序发送参数,但是当程序启动时,它会显示程序的提示。如何cat一个包含stdin测试以使程序能够解释测试的文件? (并获得终端中的程序输出)。
假设所有的测试输入存储在一个名为“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等中,其中results.number中的数字是test.input文件。
希望这会有所帮助。
'program