summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/rebar_prv_cover.erl17
1 files changed, 13 insertions, 4 deletions
diff --git a/src/rebar_prv_cover.erl b/src/rebar_prv_cover.erl
index 968a632..b62a796 100644
--- a/src/rebar_prv_cover.erl
+++ b/src/rebar_prv_cover.erl
@@ -15,7 +15,7 @@
-include("rebar.hrl").
-define(PROVIDER, cover).
--define(DEPS, [compile]).
+-define(DEPS, [lock]).
%% ===================================================================
%% Public API
@@ -84,11 +84,20 @@ reset(State) ->
{ok, State}.
analyze(State) ->
- %% modules have to be cover compiled in order for
- %% cover data to be reloaded
+ %% modules have to be compiled and then cover compiled
+ %% in order for cover data to be reloaded
%% this maybe breaks if modules have been deleted
%% since code coverage was collected?
- ok = cover_compile(State, apps),
+ case rebar_prv_compile:do(State) of
+ %% successfully compiled apps
+ {ok, S} ->
+ ok = cover_compile(S, apps),
+ do_analyze(State);
+ %% this should look like a compiler error, not a cover error
+ Error -> Error
+ end.
+
+do_analyze(State) ->
?INFO("Performing cover analysis...", []),
%% figure out what coverdata we have
CoverDir = cover_dir(State),