Make を使用して単純な回帰テスト フレームワークを実装するにはどうすればよいですか? (それが問題なら、私はGNU Makeを使用しています。)
私の現在のmakefileは次のようになります(簡単にするために編集されています):
OBJS = jscheme.o utility.o model.o read.o eval.o print.o
%.o : %.c jscheme.h
gcc -c -o $@ $<
jscheme : $(OBJS)
gcc -o $@ $(OBJS)
.PHONY : clean
clean :
-rm -f jscheme $(OBJS)
回帰テストのセットが欲しいです。たとえば、expr.in
「良い」式をunrecognized.in
テストし、「悪い」式をテストします。 expr.cmp
&unrecognized.cmp
は、それぞれの期待される出力です。手動テストは次のようになります。
$ jscheme < expr.in > expr.out 2>&1
$ jscheme < unrecognized.in > unrecognized.out 2>&1
$ diff -q expr.out expr.cmp # identical
$ diff -q unrecognized.out unrecognized.cmp
Files unrecognized.out and unrecognized.cmp differ
次のようなメイクファイルに一連のルールを追加することを考えました。
TESTS = expr.test unrecognized.test
.PHONY test $(TESTS)
test : $(TESTS)
%.test : jscheme %.in %.cmp
jscheme < [something.in] > [something.out] 2>&1
diff -q [something.out] [something.cmp]
私の質問:
• [something] プレースホルダーには何を入れますか? • からのメッセージを「テストに失敗しました」という
メッセージに置き換える方法はありますか?diff
expr