Skip to content

Commit 2f338ad

Browse files
committed
add ct-suite template and support for usage message
1 parent af9d208 commit 2f338ad

File tree

3 files changed

+50
-1
lines changed

3 files changed

+50
-1
lines changed

priv/templates/ct-suite.template

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{description, "Common Test suite module"}.
2+
{variables, [
3+
{name, "myapp", "Name of the Common Test suite to create"}
4+
]}.
5+
{template, "ct_suite.erl", "test/{{name}}_SUITE.erl"}.
6+
{message, "Run all test suites:\n\n\trebar3 ct\n\nRun individual suite with:\n\n\trebar3 ct --suite=test/{{name}}_SUITE"}.

priv/templates/ct_suite.erl

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
-module({{name}}_SUITE).
2+
3+
-include_lib("common_test/include/ct.hrl").
4+
-include_lib("stdlib/include/assert.hrl").
5+
6+
-compile(export_all).
7+
8+
suite() ->
9+
[].
10+
11+
all() ->
12+
[].
13+
14+
groups() ->
15+
[].
16+
17+
init_per_suite(Config) ->
18+
Config.
19+
20+
end_per_suite(_Config) ->
21+
ok.
22+
23+
init_per_group(_GroupName, Config) ->
24+
Config.
25+
26+
end_per_group(_GroupName, _Config) ->
27+
ok.
28+
29+
init_per_testcase(_Case, Config) ->
30+
Config.
31+
32+
end_per_testcase(_Case, _Config) ->
33+
ok.

src/rebar_templater.erl

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,14 @@ create({Template, Type, File}, Files, UserVars, Force, State) ->
162162
Vars = drop_var_docs(override_vars(UserVars, get_template_vars(TemplateTerms, State))),
163163
maybe_warn_about_name(Vars),
164164
TemplateCwd = filename:dirname(File),
165-
execute_template(TemplateTerms, Files, {Template, Type, TemplateCwd}, Vars, Force).
165+
Result = execute_template(TemplateTerms, Files, {Template, Type, TemplateCwd}, Vars, Force),
166+
maybe_print_final_message(proplists:get_value(message, TemplateTerms, undefined), Vars),
167+
Result.
168+
169+
maybe_print_final_message(undefined, _) ->
170+
ok;
171+
maybe_print_final_message(Message, Values) ->
172+
io:format("Usage:~n~n~s~n", [render(Message, Values)]).
166173

167174
maybe_warn_about_name(Vars) ->
168175
Name = proplists:get_value(name, Vars, "valid"),
@@ -198,6 +205,9 @@ execute_template([{description, _} | Terms], Files, Template, Vars, Force) ->
198205
%% We can't execute variables
199206
execute_template([{variables, _} | Terms], Files, Template, Vars, Force) ->
200207
execute_template(Terms, Files, Template, Vars, Force);
208+
%% We can't execute message
209+
execute_template([{message, _} | Terms], Files, Template, Vars, Force) ->
210+
execute_template(Terms, Files, Template, Vars, Force);
201211
%% Create a directory
202212
execute_template([{dir, Path} | Terms], Files, Template, Vars, Force) ->
203213
?DEBUG("Creating directory ~p", [Path]),

0 commit comments

Comments
 (0)