diff options
| author | alisdair sullivan <alisdairsullivan@yahoo.ca> | 2015-03-25 15:57:38 -0700 | 
|---|---|---|
| committer | alisdair sullivan <alisdairsullivan@yahoo.ca> | 2015-03-25 15:57:38 -0700 | 
| commit | df4673d378ed9417a79d22aea7251f7f04468f77 (patch) | |
| tree | 08c6e97e5f2b3914197369fe81a8efef7558a836 /src | |
| parent | 945543da19facd2dc7d9284a2df3e934f28800db (diff) | |
attempt to load paths to test modules in cover modules to
generate line by line coverage reports
Diffstat (limited to 'src')
| -rw-r--r-- | src/rebar_prv_cover.erl | 30 | 
1 files changed, 20 insertions, 10 deletions
diff --git a/src/rebar_prv_cover.erl b/src/rebar_prv_cover.erl index 45d5b81..13c12d1 100644 --- a/src/rebar_prv_cover.erl +++ b/src/rebar_prv_cover.erl @@ -14,7 +14,7 @@  -include("rebar.hrl").  -define(PROVIDER, cover). --define(DEPS, []). +-define(DEPS, [app_discovery]).  %% ===================================================================  %% Public API @@ -136,14 +136,25 @@ import(CoverData) ->      end.  analysis(State, Task) -> +    OldPath = code:get_path(), +    ok = restore_cover_paths(State),      Mods = cover:imported_modules(), -    lists:map( -        fun(Mod) -> -            {ok, Answer} = cover:analyze(Mod, coverage, line), -            {ok, File} = analyze_to_file(Mod, State, Task), -            {Mod, process(Answer), File} -        end, -        Mods). +    Analysis = lists:map(fun(Mod) -> +                  {ok, Answer} = cover:analyze(Mod, coverage, line), +                  {ok, File} = analyze_to_file(Mod, State, Task), +                  {Mod, process(Answer), File} +              end, +              Mods), +    true = code:set_path(OldPath), +    Analysis. + +restore_cover_paths(State) -> +    lists:foreach(fun(App) -> +        AppDir = rebar_app_info:out_dir(App), +        _ = code:add_path(filename:join([AppDir, "ebin"])) +    end, rebar_state:project_apps(State)), +    _ = code:add_path(filename:join([rebar_dir:base_dir(State), "ebin"])), +    ok.  analyze_to_file(Mod, State, Task) ->      CoverDir = cover_dir(State), @@ -320,8 +331,7 @@ write_coverdata(State, Task) ->      ExportFile = filename:join([DataDir, atom_to_list(Task) ++ ".coverdata"]),      case cover:export(ExportFile) of          ok -> -            ?DEBUG("Cover data written to ~p.", [ExportFile]), -            ok; +            ?DEBUG("Cover data written to ~p.", [ExportFile]);          {error, Reason} ->              ?WARN("Cover data export failed: ~p", [Reason])      end.  | 
