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