./tests/Makefile.am
大規模なプロジェクトでは、を呼び出すときにいくつかのテストを実行するように設定しましたmake check
。このファイルglobal_wrapper.c
にはセットアップ/内訳コードが含まれており、いくつかのサブディレクトリに実装されているテスト関数を呼び出します。
TESTS = global_test
check_PROGRAMS = global_test
global_test_SOURCES = global_wrapper.c foo/foo_test.c bar/bar_test.c
よく働く。ただし、テストには時間がかかるため、オプションで単一のサブディレクトリからのみテストを実行できるようにしたいと思います。これが私が最初にやった方法です。
サブディレクトリを追加しました:
SUBDIRS = foo bar
サブディレクトリに、ローカルラッパーとMakefile.am
'sを追加しました。
TESTS = foo_test
check_PROGRAMS = foo_test
# the foo_test.c here is of course the same as in the global Makefile.am
foo_test_SOURCES = foo_wrapper.c foo_test.c
make check
これもうまく機能します。サブディレクトリを呼び出すとfoo
、fooテストのみが実行されます。
ただし、ここで呼び出すmake check
と./tests
、すべてのテストが2回実行されます。一度global_test
、そしてローカルテストプログラムを通して一度。
SUBDIRS
グローバルでステートメントを省略するMakefile.am
と、サブディレクトリmakefilesはビルドされません。TESTS
ローカルから省略した場合Makefile.am
、make check
ローカルディレクトリに対しては何もしません。
私はautomakeにあまり詳しくありませんが、このジレンマを解決する方法があると確信しています。ここの誰かが私にヒントを与えることができますか?