2012-11-08 26 views
3

我目前正在开发一个类似bash的项目。但是,我需要用几千个测试测试这个项目,不能手动检查。这就是为什么我想自动执行测试。使用fgets()自动测试程序

我的程序使用fgets()来获得用户输入。我知道如何直接向程序发送参数,但是当程序启动时,它会显示程序的提示。如何cat一个包含stdin测试以使程序能够解释测试的文件? (并获得终端中的程序输出)。

+8

'program

回答

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等中,其中results.number中的数字是test.input文件。

希望这会有所帮助。