Skip to content

4.0.0

No due date 38% complete

LightBDD 4.0

The theme of LightBDD 4.0 is to provide a better experience with writing, running, and debugging service tests by leveraging .net ecosystem frameworks and libraries.

Areas of change

  • Integrate DI with the core engine of LightBDD, which will simplify internal dependency management and provide higher flexibility in the implementation of the ne…

LightBDD 4.0

The theme of LightBDD 4.0 is to provide a better experience with writing, running, and debugging service tests by leveraging .net ecosystem frameworks and libraries.

Areas of change

  • Integrate DI with the core engine of LightBDD, which will simplify internal dependency management and provide higher flexibility in the implementation of the new capabilities.
  • Revisit the test pipeline itself, clearly describing all pipeline features, simplifying implementation where possible, and implementing new features where required (such as #259)
  • Implement features allowing better integration with tested asp.net services, such as logging capture (#133) or usage of distributed tracing for easier understanding of the root cause of test failure
  • Revisit integrations with underlying test frameworks and ensure the integrations enables the best experience of working with LightBDD, covering test discoverability and execution, DI integration, test parallelization, and overall pipeline integration.
  • Revisit step definitions and simplify or unify them where possible.
  • Revisit existing LightBDD features and implement a few requested ones (such as #179, #183)
  • Remove obsolete code

DI at the core of LightBDD

  • LightBDD configuration objects to be injectable to actual components using it
  • LightBDD components (report gen, runners, notifiers) to be managed in DI
  • Removal of IntegrationContext and similar types, where possible
  • Review of metadata provider
  • Consider single implementation of DI with simplified scoping to runtime(singleton)/scenario(scope)/local

Revisited test pipeline

  • Describe the pipeline with all supported features
  • Rework DI scope management on the pipeline, covering the creation of feature fixture objects as part of the scenario run
  • Revisit how Global SetUp/TearDown is fit to the pipeline
  • Revisit how sub-steps are discovered and executed in relation to the parent and its decorators
  • Simplify the creation of StepDescriptor in the area of step method creation
  • Revisit exception management on the step/scenarios
  • Consider implementing a mechanism to run scenarios multiple times (re-run failed or pass if x of n were successful) - #259

Revisited step definitions

  • Consider removal of then => Value_should_not_be_null() syntax in favor of _ => Then_value_should_not_be_null() one
  • Check if new c# language features could be used to simplify scenario definitions (consider step definitions using operator overloading or implicit casts) to mix sync and async steps
  • Review and simplify AddSteps/AddStep methods

Better experience in ASP.NET service testing

  • Implement logging capture for LightBDD (#133)
  • Investigate integration with distributed tracking to correlate scenarios and steps with actions performed on the service
  • Investigate capturing service logs (when run in-process)
  • Investigate capturing distributed tracking information

LightBDD integrations with underlying test frameworks

  • Revisit current integrations and update them to fit the revised LightBDD pipeline