summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authoralisdair sullivan <alisdairsullivan@yahoo.ca>2015-03-25 15:57:38 -0700
committeralisdair sullivan <alisdairsullivan@yahoo.ca>2015-03-25 15:57:38 -0700
commitdf4673d378ed9417a79d22aea7251f7f04468f77 (patch)
tree08c6e97e5f2b3914197369fe81a8efef7558a836 /src
parent945543da19facd2dc7d9284a2df3e934f28800db (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.erl30
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.