-
Notifications
You must be signed in to change notification settings - Fork 753
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
Report binding problems to binding registry and show them as errors during test execution #2663
Conversation
44f34f9
to
5419212
Compare
@SabotageAndi the PR exposes a tuple on the |
I would not put a tuple into a public interface. Feels wrong for me. |
@SabotageAndi OK, I agree. I will fix it |
@SabotageAndi pushed a new version without the tuple |
@gasparnagy Ready to merge? |
@SabotageAndi yes, done. |
* master: Report binding problems to binding registry and show them as errors during test execution (#2663) Fix for SF2649: Aggregate exceptions lost from async step definitions (#2667) # Conflicts: # TechTalk.SpecFlow/Bindings/BindingInvoker.cs # Tests/TechTalk.SpecFlow.RuntimeTests/Bindings/BindingInvokerTests.cs
…uring test execution (SpecFlowOSS#2663) * Refactor BindingSourceProcessor to collect binding errors * Fix BindingSourceProcessorStub * Add tests & fixes * collect type load errors * Extend changelog * Replace tuple with a class on the IBindingRegistry interface
Some generic binding errors (e.g.
[Binding]
on a generic type) were not properly reported as errors so far, only as warnings, but those are usually not visible by test runners. Some of these errors were causing strange exceptions during execution, but it was hard to trace them back to the source problem.Also type load exceptions blocked the discovery process that causes problems with tooling (e.g. VS) that uses the binding registry builder to discover the step definitions.
This PR introduces validity of loaded binding registry and provides a way to query these errors from the binding registry. During test execution, the invalid binding registry fails the tests by listing all collected error.
Types of changes
Checklist: