diff options
author | alisdair sullivan <alisdairsullivan@yahoo.ca> | 2015-01-07 17:59:07 -0800 |
---|---|---|
committer | alisdair sullivan <alisdairsullivan@yahoo.ca> | 2015-01-07 17:59:07 -0800 |
commit | e5270da3d751605fbb6fbcdfd12ad0d76e1fcfbd (patch) | |
tree | db5d56c6e83872f06b94b2e35343f21598ba605b | |
parent | b205bebecc5e96c8b07b8c727356b0efb7e31562 (diff) |
preserve rebar path when running `ct` and `eunit` tests
-rw-r--r-- | src/rebar_prv_common_test.erl | 4 | ||||
-rw-r--r-- | src/rebar_prv_eunit.erl | 7 |
2 files changed, 8 insertions, 3 deletions
diff --git a/src/rebar_prv_common_test.erl b/src/rebar_prv_common_test.erl index ceab16c..65a09ef 100644 --- a/src/rebar_prv_common_test.erl +++ b/src/rebar_prv_common_test.erl @@ -41,7 +41,7 @@ do(State) -> OutDir = case proplists:get_value(outdir, RawOpts, undefined) of undefined -> filename:join([rebar_state:dir(State), ec_file:insecure_mkdtemp()]); - Path -> Path + Out -> Out end, InDir = proplists:get_value(dir, Opts, []), ok = create_dirs(Opts), @@ -56,9 +56,11 @@ do(State) -> TestState = first_files(test_opts(S, InDir, OutDir)), ok = rebar_erlc_compiler:compile(TestState, AppDir) end, ProjectApps), + Path = code:get_path(), true = code:add_patha(OutDir), CTOpts = resolve_ct_opts(State, Opts), Result = handle_results(ct:run_test([{dir, OutDir}] ++ CTOpts)), + true = code:set_path(Path), case Result of {error, Reason} -> {error, {?MODULE, Reason}}; diff --git a/src/rebar_prv_eunit.erl b/src/rebar_prv_eunit.erl index cb0e850..7db11a3 100644 --- a/src/rebar_prv_eunit.erl +++ b/src/rebar_prv_eunit.erl @@ -41,7 +41,7 @@ do(State) -> OutDir = case proplists:get_value(outdir, Opts, undefined) of undefined -> filename:join([rebar_state:dir(State), ec_file:insecure_mkdtemp()]); - Path -> Path + Out -> Out end, ?DEBUG("Compiling EUnit instrumented modules in: ~p", [OutDir]), lists:foreach(fun(App) -> @@ -54,11 +54,14 @@ do(State) -> TestState = first_files(test_opts(S, OutDir)), ok = rebar_erlc_compiler:compile(TestState, AppDir) end, ProjectApps), + Path = code:get_path(), true = code:add_patha(OutDir), EUnitOpts = resolve_eunit_opts(State, Opts), AppsToTest = [{application, erlang:binary_to_atom(rebar_app_info:name(App), unicode)} || App <- ProjectApps], - case handle_results(eunit:test(AppsToTest, EUnitOpts)) of + Result = eunit:test(AppsToTest, EUnitOpts), + true = code:set_path(Path), + case handle_results(Result) of {error, Reason} -> {error, {?MODULE, Reason}}; ok -> |