소스 검색

fix failing cover test

pull/805/head
alisdair sullivan 9 년 전
부모
커밋
2b799ba1c7
1개의 변경된 파일27개의 추가작업 그리고 6개의 파일을 삭제
  1. +27
    -6
      src/rebar_prv_eunit.erl

+ 27
- 6
src/rebar_prv_eunit.erl 파일 보기

@ -78,7 +78,7 @@ do_tests(State, Tests) ->
?DEBUG("eunit_tests ~p", [Tests]),
?DEBUG("eunit_opts ~p", [EUnitOpts]),
Result = eunit:test(Tests, EUnitOpts),
ok = rebar_prv_cover:maybe_write_coverdata(State, ?PROVIDER),
ok = maybe_write_coverdata(State),
case handle_results(Result) of
{error, Reason} ->
?PRV_ERROR(Reason);
@ -121,8 +121,8 @@ compile(State) ->
case rebar_prv_compile:do(NewState) of
%% successfully compiled apps
{ok, S} ->
_ = maybe_cover_compile(S),
_ = maybe_compile_bare_testdir(S),
ok = maybe_cover_compile(S),
ok = maybe_compile_bare_testdir(S),
{ok, S};
%% this should look like a compiler error, not an eunit error
Error -> Error
@ -303,14 +303,34 @@ set_verbose(Opts) ->
end.
maybe_cover_compile(State) ->
State1 = case rebar_state:get(State, cover, false) of
{RawOpts, _} = rebar_state:command_parsed_args(State),
State1 = case proplists:get_value(cover, RawOpts, false) of
true -> rebar_state:set(State, cover_enabled, true);
false -> State
end,
rebar_prv_cover:maybe_cover_compile(State1).
maybe_cover_compile(State, Dir) ->
{RawOpts, _} = rebar_state:command_parsed_args(State),
State1 = case proplists:get_value(cover, RawOpts, false) of
true -> rebar_state:set(State, cover_enabled, true);
false -> State
end,
rebar_prv_cover:maybe_cover_compile(State1, [Dir]).
maybe_write_coverdata(State) ->
{RawOpts, _} = rebar_state:command_parsed_args(State),
State1 = case proplists:get_value(cover, RawOpts, false) of
true -> rebar_state:set(State, cover_enabled, true);
false -> State
end,
rebar_prv_cover:maybe_write_coverdata(State1, ?PROVIDER).
maybe_compile_bare_testdir(State) ->
case ec_file:is_dir(filename:join([rebar_state:dir(State), "test"])) of
Apps = project_apps(State),
BareTest = filename:join([rebar_state:dir(State), "test"]),
F = fun(App) -> rebar_app_info:dir(App) == rebar_state:dir(State) end,
case ec_file:is_dir(BareTest) andalso not lists:any(F, Apps) of
true ->
ErlOpts = rebar_state:get(State, erl_opts, []),
EUnitOpts = rebar_state:get(State, eunit_compile_opts, []),
@ -325,7 +345,8 @@ maybe_compile_bare_testdir(State) ->
[{erl_opts, NewErlOpts}, {erl_first_files, NewFirstFiles}, {src_dirs, ["test"]}]),
OutDir = filename:join([rebar_dir:base_dir(State), "test"]),
filelib:ensure_dir(filename:join([OutDir, "dummy.beam"])),
rebar_erlc_compiler:compile(NewOpts, rebar_state:dir(State), OutDir);
rebar_erlc_compiler:compile(NewOpts, rebar_state:dir(State), OutDir),
maybe_cover_compile(State, [OutDir]);
false -> ok
end.

불러오는 중...
취소
저장