3

現在、bash のようなプロジェクトに取り組んでいます。ただし、手動でチェックできない数千のテストでこのプロジェクトをテストする必要があります。そのため、テストを自動的に実行したいと考えています。

私のプログラムはfgets()、ユーザー入力を取得していました。プログラムに引数を直接送る方法は知っていますが、プログラムを起動すると、プログラムのプロンプトが表示されます。プログラムがテストを解釈できるようにするために、stdin のテストを含むファイルをcatする方法は? (そしてターミナルでプログラム出力を取得します)。

4

1 に答える 1

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ファイルの行番号。

お役に立てれば。

于 2012-11-15T10:40:08.460 に答える