99#include " cucumber_cpp/library/cucumber_expression/Errors.hpp"
1010#include " cucumber_cpp/library/cucumber_expression/Matcher.hpp"
1111#include " cucumber_cpp/library/cucumber_expression/ParameterRegistry.hpp"
12- #include " cucumber_cpp/library/engine/NewRuntime.hpp"
1312#include " cucumber_cpp/library/formatter/SummaryFormatter.hpp"
1413#include " cucumber_cpp/library/support/Types.hpp"
1514#include " cucumber_cpp/library/util/Broadcaster.hpp"
@@ -174,33 +173,10 @@ namespace cucumber_cpp::library
174173
175174 void Application::RunFeatures ()
176175 {
177- struct BroadcastListener
178- {
179- explicit BroadcastListener (util::Broadcaster& broadcaster)
180- : listener(broadcaster, [this ](const cucumber::messages::envelope& envelope)
181- {
182- OnEvent (envelope);
183- })
184- {}
185-
186- void OnEvent (const cucumber::messages::envelope& envelope)
187- {
188- std::cout << envelope.to_json () << " \n " ;
189- }
190-
191- private:
192- util::Listener listener;
193- };
194-
195- // BroadcastListener broadcastListener{ broadcaster };
196-
197- // for (const auto& selectedReporter : options.reporters)
198- // reporters.Use(selectedReporter);
199-
200176 const auto tagExpression = Join (options.tags , " " );
201177 const auto featureFiles = GetFeatureFiles (options);
202178
203- support::RunOptions runOptions {
179+ const auto runOptions = support::RunOptions{
204180 .sources = {
205181 .paths = featureFiles,
206182 .tagExpression = tagExpression,
@@ -213,15 +189,12 @@ namespace cucumber_cpp::library
213189 auto & listeners = testing::UnitTest::GetInstance ()->listeners ();
214190 auto * defaultEventListener = listeners.Release (listeners.default_result_printer ());
215191
216- api::RunCucumber (runOptions, parameterRegistry, *programContext, broadcaster);
192+ runPassed = api::RunCucumber (runOptions, parameterRegistry, *programContext, broadcaster);
217193
218194 listeners.Append (defaultEventListener);
219195
220196 // if (options.printStepsNotUsed)
221197 // PrintStepsNotUsed(stepRegistry);
222-
223- std::cout << ' \n '
224- << std::flush;
225198 }
226199
227200 void Application::PrintStepsNotUsed (const StepRegistry& stepRegistry) const
@@ -245,14 +218,6 @@ namespace cucumber_cpp::library
245218
246219 int Application::GetExitCode () const
247220 {
248- return 0 ;
249- // if (testing::UnitTest::GetInstance()->Failed())
250- // return GetExitCode(engine::Result::failed);
251- // return GetExitCode(engine::Result::passed);
221+ return runPassed ? 0 : 1 ;
252222 }
253-
254- // int Application::GetExitCode(engine::Result result) const
255- // {
256- // return static_cast<std::underlying_type_t<engine::Result>>(result) - static_cast<std::underlying_type_t<engine::Result>>(engine::Result::passed);
257- // }
258223}
0 commit comments