質問

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

私はMakeFileに一連のルールをこのように見せていると思っていました:

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]

私の質問:
•[何か]プレースホルダーに何を入れますか?
•メッセージをから置き換える方法はありますか diff 「テスト expr 失敗した"?

正しい解決策はありません

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top