我目前正在从事一个类似 bash 的项目。但是,我需要用数千个测试来测试这个项目,这是无法手动检查的。这就是为什么我想自动执行测试。
我的程序用于fgets()
获取用户输入。我知道如何直接向程序发送参数,但是当程序启动时,它会显示程序的提示。如何在标准输入上对包含测试的文件进行分类以使程序能够解释测试?(并在终端中获取程序输出)。
假设您所有的测试输入都存储在一个名为“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 文件的行号。
希望这可以帮助。