Erlangで説明されているように構成ファイルを作成しました-- configは、それぞれが独自の Common Test suites ディレクトリを持つ複数のサブアプリで構成されるアプリケーションの構成です。ビルドとテストには rebar を使用します。ディレクトリ構造は次のようになります。
.
├── apps
│ ├── app1
│ │ ├── ebin
│ │ └── src
│ ├── app2
│ │ ├── ebin
│ │ ├── logs
│ │ ├── rebar.config
│ │ ├── src
│ │ └── test
│ ├── ...
├── deps
├── rebar.config
├── apps.config
whereapps.config
には、すべてのアプリの構成が含まれています。VM を起動すると、erl -pa deps/*/ebin -pa apps/*/ebin -config apps
すべて正常に動作します。に追加{ct_extra_params, "-erl_args -config rpm"}.
しましたrebar.config
が、実行すると が呼び出されたrebar ct
ときにエラーが発生します。application:get_env/1,2
rebar でこれを行うことができない場合は、代わりに make を使用することもできます。Erlang - External Configuration Dateで説明されているように、どうにかして構成を Common Test にロードできることは知っていますが、すでにapps.config
.
更新: ct_run -dir apps/app1/test -pa deps/*/ebin -pa apps/*/ebin -erl_args -config rpm
期待どおりに動作します。問題は、各アプリケーションのテストを実行するときに rebar が cwd を変更するため、-config rpm
オプションが既存のファイルを指していないことだと思います。とにかく回避策を見つけることができませんでした。