From e02d246783885169d0adc9aa01c659b6ff1e74df Mon Sep 17 00:00:00 2001 From: Roberto Majadas Date: Fri, 14 Dec 2012 16:09:42 +0100 Subject: [PATCH] kucumberl return exit(1) if some scenario failed --- src/kucumberl_cli.erl | 35 +++++++++++++++++++++++++---------- 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/src/kucumberl_cli.erl b/src/kucumberl_cli.erl index d3022d3..d958e58 100644 --- a/src/kucumberl_cli.erl +++ b/src/kucumberl_cli.erl @@ -56,14 +56,22 @@ main(Args) -> kucumberl_log:set_color(Conf#conf.color), - case Conf#conf.task of - help -> - usage(OptSpecList); - list -> - task(list, Conf); - runtests -> - task(runtests, Conf); - _ -> ignoreit + Result = + case Conf#conf.task of + help -> + usage(OptSpecList), + ok; + list -> + task(list, Conf); + runtests -> + task(runtests, Conf); + _ -> ignoreit + end, + case Result of + error -> + kucumberl_utils:exit(1); + _ -> + ignoreit end; {error, {_Reason, _Data}} -> usage(OptSpecList) @@ -178,7 +186,8 @@ task(list, Conf) -> ]), ok end, - lists:foreach (PrintFeature, Conf#conf.features); + lists:foreach (PrintFeature, Conf#conf.features), + ok; task(runtests, Conf) -> Features = lists:foldl( @@ -193,7 +202,13 @@ task(runtests, Conf) -> lists:foldl(fun(F, L) -> L ++ [kucumberl_feature:run(F)] end, [], Features), - kucumberl_log:print_stats(); + kucumberl_log:print_stats(), + + ScnFailed = length(ets:match(kctx, {{'$1', status, '$2', '$3'}, failed})), + case ScnFailed of + 0 -> ok; + _ -> error + end; error -> error end.