たとえば、Make、ant、またはその他のビルド ツールをいじっているときは、実際にはコードを書いています。
これらのコードをテストするための「MUnit」または「ANTUnit」がないのはなぜですか? プロジェクトのビルド システムにバグがあると、それを使用する人々に大きな遅延とフラストレーションを引き起こすため、そうするのは理にかなっています。
例(注:これはおそらく機能しません-テストされておらず、ここでも私の焦点ではありません):
#makefile v0
all: main.out
main.out: main.o x.o y.o
g++ $^ -o main.out
%.o: %.cpp
g++ -Wall $?
しかし今、私はオブジェクトファイルを別のビルドフォルダーに入れたいと思っています:
#makefile v1
all: main.out
main.out: $(addprefix build/,main.o x.o y.o)
g++ $^ -o main.out
build/%o: %.cpp
g++ Wall $< -o $@
そうそう!それはうまくいきます!専念!専念!
(しかし... 継続的インテグレーション サーバーにはまだ「ビルド」フォルダーがありません...)
いやいや…チームのビルドが失敗した…私のせいだ…ばか!
モック プロジェクト、モック フォルダー構造を指定してから を呼び出しmake all
、main.out がそこにある (そして実行できる) ことを確認できると便利です。
だからここに質問:
make スクリプトを「単体テスト」するためのオプションは何ですか? 何億ものテストシェルスクリプトを書く運命にあるのでしょうか、それとも何かがすでに存在しているのでしょうか?