diff options
-rw-r--r-- | src/rebar_prv_cover.erl | 17 |
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), |