瀏覽代碼

allow suite[s] or test[s] as options for eunit and ct

pull/3/head
Andrew J. Stone 11 年之前
父節點
當前提交
cc72cd8fce
共有 3 個檔案被更改,包括 60 行新增36 行删除
  1. +31
    -31
      src/rebar.erl
  2. +9
    -1
      src/rebar_ct.erl
  3. +20
    -4
      src/rebar_eunit.erl

+ 31
- 31
src/rebar.erl 查看文件

@ -333,51 +333,51 @@ show_info_maybe_halt(O, Opts, F) ->
%%
commands() ->
S = <<"
clean Clean
compile Compile sources
clean Clean
compile Compile sources
escriptize Generate escript archive
escriptize Generate escript archive
create template= [var=foo,...] Create skel based on template and vars
create-app [appid=myapp] Create simple app skel
create-lib [libid=mylib] Create simple lib skel
create-node [nodeid=mynode] Create simple node skel
list-templates List available templates
create template= [var=foo,...] Create skel based on template and vars
create-app [appid=myapp] Create simple app skel
create-lib [libid=mylib] Create simple lib skel
create-node [nodeid=mynode] Create simple node skel
list-templates List available templates
doc Generate Erlang program documentation
doc Generate Erlang program documentation
check-deps Display to be fetched dependencies
get-deps Fetch dependencies
update-deps Update fetched dependencies
delete-deps Delete fetched dependencies
list-deps List dependencies
check-deps Display to be fetched dependencies
get-deps Fetch dependencies
update-deps Update fetched dependencies
delete-deps Delete fetched dependencies
list-deps List dependencies
generate [dump_spec=0/1] Build release with reltool
overlay Run reltool overlays only
generate [dump_spec=0/1] Build release with reltool
overlay Run reltool overlays only
generate-upgrade previous_release=path Build an upgrade package
generate-appups previous_release=path Generate appup files
eunit [suites=foo] Run eunit tests in foo.erl and
test/foo_tests.erl
[suites=foo] [tests=bar] Run specific eunit tests [first test name
starting with 'bar' in foo.erl and
test/foo_tests.erl]
[tests=bar] For every existing suite, run the first
test whose name starts with bar and, if
no such test exists, run the test whose
name starts with bar in the suite's
_tests module
eunit [suitespan>[s]=foo] Run eunit tests in foo.erl and
test/foo_tests.erl
[suitespan>[s]=foo] [testspan>[s]=bar] Run specific eunit tests [first test
name starting with 'bar' in foo.erl
and test/foo_tests.erl]
[testspan>[s]=bar] For every existing suite, run the first
test whose name starts with bar and, if
no such test exists, run the test whose
name starts with bar in the suite's
_tests module
ct [suites=] [case=] Run common_test suites
ct [suitespan>[s]=] [case=] Run common_test suites
qc Test QuickCheck properties
qc Test QuickCheck properties
xref Run cross reference analysis
xref Run cross reference analysis
help Show the program options
version Show version information
help Show the program options
version Show version information
">>,
io:put_chars(S).

+ 9
- 1
src/rebar_ct.erl 查看文件

@ -320,7 +320,7 @@ get_config_file(TestDir) ->
end.
get_suites(Config, TestDir) ->
case rebar_config:get_global(Config, suites, undefined) of
case get_suites(Config) of
undefined ->
" -dir " ++ TestDir;
Suites ->
@ -329,6 +329,14 @@ get_suites(Config, TestDir) ->
string:join([" -suite"] ++ Suites2, " ")
end.
get_suites(Config) ->
case rebar_config:get_global(Config, suites, undefined) of
undefined ->
rebar_config:get_global(Config, suite, undefined);
Suites ->
Suites
end.
find_suite_path(Suite, TestDir) ->
Path = filename:join(TestDir, Suite ++ "_SUITE.erl"),
case filelib:is_regular(Path) of

+ 20
- 4
src/rebar_eunit.erl 查看文件

@ -120,9 +120,9 @@ info_help(Description) ->
" ~p~n"
" ~p~n"
"Valid command line options:~n"
" suites=\"foo,bar\" (Run tests in foo.erl, test/foo_tests.erl and~n"
" suite[s]=\"foo,bar\" (Run tests in foo.erl, test/foo_tests.erl and~n"
" tests in bar.erl, test/bar_tests.erl)~n"
" tests=\"baz\" (For every existing suite, run the first test whose~n"
" test[s]=\"baz\" (For every existing suite, run the first test whose~n"
" name starts with bar and, if no such test exists,~n"
" run the test whose name starts with bar in the~n"
" suite's _tests module)~n"
@ -215,7 +215,7 @@ setup_code_path() ->
%%
filter_suites(Config, Modules) ->
RawSuites = rebar_config:get_global(Config, suites, ""),
RawSuites = get_suites(Config),
SuitesProvided = RawSuites =/= "",
Suites = [list_to_atom(Suite) || Suite <- string:tokens(RawSuites, ",")],
{SuitesProvided, filter_suites1(Modules, Suites)}.
@ -225,6 +225,14 @@ filter_suites1(Modules, []) ->
filter_suites1(Modules, Suites) ->
[M || M <- Suites, lists:member(M, Modules)].
get_suites(Config) ->
case rebar_config:get_global(Config, suites, "") of
"" ->
rebar_config:get_global(Config, suite, "");
Suites ->
Suites
end.
%%
%% == get matching tests ==
%%
@ -259,8 +267,16 @@ get_tests(Config, SuitesProvided, ModuleBeamFiles, FilteredModules) ->
end,
get_matching_tests(Config, Modules).
get_tests(Config) ->
case rebar_config:get_global(Config, tests, "") of
"" ->
rebar_config:get_global(Config, test, "");
Suites ->
Suites
end.
get_matching_tests(Config, Modules) ->
RawFunctions = rebar_config:get_global(Config, tests, ""),
RawFunctions = get_tests(Config),
Tests = [list_to_atom(F1) || F1 <- string:tokens(RawFunctions, ",")],
case Tests of
[] ->

Loading…
取消
儲存