Erlang通用测试覆盖率规范文件-相对路径

Erlang通用测试覆盖率规范文件-相对路径,erlang,code-coverage,common-test,Erlang,Code Coverage,Common Test,我在erlang项目中使用公共测试进行代码覆盖率分析 文件结构 myProject/ ebin/ src/ test/ myProject.coverspec 源代码的.beam文件位于ebin/中,对于测试,它们与测试源一起位于test/中 我目前正在使用.coverspec文件中.beam文件的绝对路径 myProject.coverspec: {level,details}. {incl_dirs, ["/home/user/myProject/e

我在erlang项目中使用公共测试进行代码覆盖率分析

文件结构

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中的路径相对于我使用过的My中的?

,我的设置如下所示:

  • 项目根目录中的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
    
不确定这是否解决了你的问题,但它对我有效