diff --git a/src/rebar_eunit.erl b/src/rebar_eunit.erl index aca68fe..c4740a7 100644 --- a/src/rebar_eunit.erl +++ b/src/rebar_eunit.erl @@ -83,10 +83,11 @@ eunit(Config, _File) -> BeamFiles = [N || N <- rebar_utils:beams(?EUNIT_DIR), string:str(N, "_tests.beam") =:= 0], Modules = [rebar_utils:beam_to_mod(?EUNIT_DIR, N) || N <- BeamFiles], - + SrcModules = [rebar_utils:erl_to_mod(M) || M <- SrcErls], + cover_init(Config, BeamFiles), EunitResult = perform_eunit(Config, Modules), - perform_cover(Config, Modules), + perform_cover(Config, Modules, SrcModules), case EunitResult of ok -> @@ -182,17 +183,18 @@ is_quickcheck_avail() -> IsAvail end. -perform_cover(Config, BeamFiles) -> - perform_cover(rebar_config:get(Config, cover_enabled, false), Config, BeamFiles). +perform_cover(Config, BeamFiles, SrcModules) -> + perform_cover(rebar_config:get(Config, cover_enabled, false), + Config, BeamFiles, SrcModules). -perform_cover(false, _Config, _BeamFiles) -> +perform_cover(false, _Config, _BeamFiles, _SrcModules) -> ok; -perform_cover(true, Config, BeamFiles) -> - cover_analyze(Config, BeamFiles). +perform_cover(true, Config, BeamFiles, SrcModules) -> + cover_analyze(Config, BeamFiles, SrcModules). -cover_analyze(_Config, []) -> +cover_analyze(_Config, [], _SrcModules) -> ok; -cover_analyze(_Config, Modules) -> +cover_analyze(_Config, Modules, SrcModules) -> Suite = list_to_atom(rebar_config:get_global(suite, "")), FilteredModules = [M || M <- Modules, M =/= Suite], @@ -200,7 +202,7 @@ cover_analyze(_Config, Modules) -> Coverage = [cover_analyze_mod(M) || M <- FilteredModules], %% Write index of coverage info - cover_write_index(lists:sort(Coverage)), + cover_write_index(lists:sort(Coverage), SrcModules), %% Write coverage details for each file [{ok, _} = cover:analyze_to_file(M, cover_file(M), [html]) || {M, _, _} <- Coverage], @@ -243,7 +245,19 @@ cover_analyze_mod(Module) -> {0,0} end. -cover_write_index(Coverage) -> +cover_write_index(Coverage, SrcModules) -> + {ok, F} = file:open(filename:join([?EUNIT_DIR, "index.html"]), [write]), + ok = file:write(F, "