2

我在我的 erlang 项目中使用 Common Test 进行代码覆盖率分析。

文件结构

myProject/
    ebin/
    src/
    test/
        myProject.coverspec

源代码的 .beam 文件位于 ebin/ 中,对于测试,它们与测试源一起位于 test/ 中。

我目前正在使用 .coverspec 文件中的 .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 回答