Packages

Covertool Build Plugin for Cobertura XML reports

Current section

Files

Jump to
rebar_covertool src mix_covertool.erl
Raw

src/mix_covertool.erl

-module(mix_covertool).
%% mix plugin callbacks
-export([start/2]).
-include("covertool.hrl").
%% ===================================================================
%% Mix plugin callbacks
%% ===================================================================
start( CompilePath, _Opts ) ->
_ = cover:start(),
case cover:compile_beam_directory(binary:bin_to_list(CompilePath)) of
Results when is_list(Results) ->
ok;
{error, _} ->
mix(raise, <<"Failed to cover compile directory">>)
end,
AppName = proplists:get_value(app, mix_project(config)),
{ok, SrcDir} = file:get_cwd(),
BeamDir = binary:bin_to_list(mix_project(compile_path)),
Config = #config{appname = AppName, sources = [SrcDir], beams = [BeamDir]},
fun() ->
covertool:generate_report(Config, cover:modules())
end.
%% ===================================================================
%% Mix helpers
%% ===================================================================
mix(Fun, Arg) ->
'Elixir.Mix':Fun(Arg).
mix_project(Fun) ->
'Elixir.Mix.Project':Fun().