2

erlang プロジェクトでコード カバレッジ分析に Common Test を使用しています。

ファイル構造

myProject/
    ebin/
    src/
    test/
        myProject.coverspec

ソース コードの .beam ファイルは ebin/ にあり、テストの場合はテスト ソースと共に test/ にあります。

現在、.coverspec-file 内の .beam ファイルへの絶対パスを使用しています。

myProject.coverspec:

{level,details}.
{incl_dirs, ["/home/user/myProject/ebin", "/home/user/myProject/test"]}.

これは機能しますが、プロジェクトの開発が分散されているため、最適とは言えません。

ct_run はプロジェクトのベースである myProject から呼び出されます。パスは myProject に相対的ではなく、別の場所にあるようです。

myProject と myProject/test の両方に関連するパスを試しましたが、成功しませんでした。

私の質問は、 myProject.coverspec の相対パスはどこですか?

4

1 に答える 1

1

私が使用した最後のErlangプロジェクトでは、セットアップは次のようになりました。CTcover

  • プロジェクト ルート ディレクトリの cover.spec:

    {incl_dirs, ["apps/application_manager/ebin", "apps/session_counter/ebin", "apps/session_heartbeat/ebin", "apps/session_api/ebin"]}.
    
  • 経由でプロジェクト ルートから実行されるテスト。

    ct_run -pa apps/*/ebin -pa deps/*/ebin -dir apps/*/test/ -logdir tests -- cover cover.spec
    

これで問題が解決するかどうかはわかりませんが、私にとってはうまくいきました。

于 2015-06-04T15:26:44.637 に答える