Skip to content

Commit

Permalink
adding support of exclude_modules config option
Browse files Browse the repository at this point in the history
  • Loading branch information
DenysGonchar committed Mar 27, 2023
1 parent 51d016c commit facb183
Showing 1 changed file with 15 additions and 3 deletions.
18 changes: 15 additions & 3 deletions src/rebar3_codecov_prv.erl
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,8 @@ do(State) ->
end, AppsInfo),
code:add_paths(Defaults),
Files = lists:flatmap(fun get_coverdata_files/1, AppsInfo),
Data = analyze(Files),
ExcludeModules = lists:flatmap(fun get_excluded_modules/1, AppsInfo),
Data = analyze(Files, ExcludeModules),
export(Data, State),
{ok, State}.

Expand All @@ -56,15 +57,15 @@ format_error(Reason) ->
io_lib:format("~p", [Reason]).

%% Private API
analyze(Files) ->
analyze(Files, ExcludeModules) ->
try
cover:start(),
lists:map(fun(F) ->
cover:import(F),
rebar_api:info("importing ~s~n", [F])
end,
Files),
Modules = cover:imported_modules(),
Modules = cover:imported_modules() -- ExcludeModules,
{result, Result, _} = cover:analyse(Modules, calls, line),
Result
catch
Expand Down Expand Up @@ -170,3 +171,14 @@ get_coverdata_files(AppInfo) ->
end,
rebar_api:info("Exporting cover data from ~p~n", [CoverDataPath]),
lists:flatmap(fun filelib:wildcard/1, CoverDataPath).

get_excluded_modules(AppInfo) ->
Opts = rebar_app_info:opts(AppInfo),
ExcludeModules = case dict:find(codecov_opts, Opts) of
{ok, CodecovOpts} ->
proplists:get_value(exclude_modules, CodecovOpts, []);
_ ->
[]
end,
rebar_api:info("Excluding modules from coverage report ~p~n", [ExcludeModules]),
ExcludeModules.

0 comments on commit facb183

Please sign in to comment.