Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Steps throwing exceptions not reported as an error (Boost.Test) #222

Open
chzumbrunn-lsy opened this issue May 16, 2019 · 2 comments
Open
Labels

Comments

@chzumbrunn-lsy
Copy link

Summary

We encountered the issue that step definitions which throw an exception are reported as passed, when using the Boost.Test framework and cucumber-cpp.

Expected Behavior

Our expectation was that a step which throws an exception (for whatever reason) should be reported as a failed step by cucumber-cpp.

Current Behavior

The step is reported as passed. The rest of the step definition after the exception gets thrown, doesn't get executed.

Possible Solution

Not familiar with Boost.Test nor cucumber-cpp source code, but while debugging this, I noticed the following:
The exception is caught by unit_test_monitor_t::execute_and_translate(...) in unit_test_monitor.ipp and gets reported to test observers.
However, the BoostDriver only considers the test log for the decision to rate a step as success or failure, but exceptions don't show up in this log for some reason.
We could successfully trigger a failed step by adding something along the following lines after runWithMasterSuite() (needs #include <boost/test/results_collector.hpp>):

auto results = ::boost::unit_test::results_collector.results(testCase->p_id);
if (!results.passed())
{
  std::string description = "Test aborted/failed with result code " + std::to_string(results.result_code());
  return InvokeResult::failure(description.c_str());
}
@chzumbrunn-lsy
Copy link
Author

I should mention that this was reproduced with Boost.Test versions 1.60.0 and 1.65.1

@ursfassler
Copy link
Contributor

I can reproduce the problem with the current version.

@ursfassler ursfassler added the bug label Jan 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants