Browse Source

attempt to load paths to test modules in cover modules to

generate line by line coverage reports
pull/298/head
alisdair sullivan 10 years ago
parent
commit
df4673d378
1 changed files with 20 additions and 10 deletions
  1. +20
    -10
      src/rebar_prv_cover.erl

+ 20
- 10
src/rebar_prv_cover.erl View File

@ -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.

Loading…
Cancel
Save