LightBDD =========================================== Version 3.8.0 ---------------------------------------- + #338 (LightBDD.Framework)(New) Added ScenarioDescriptionAttribute to decorate scenarios with description. Updated ReportFormatters and ProgressNotifiers to include it when provided. + #338 Updated XmlReportFormatterSchema.xsd to v2.2 with support for Scenario Description + #344 (LightBDD.Core)(Change) Allowed IReportFormatter and IGlobalResourceSetUp implementations to use LightBDDConfigurationAware base Version 3.7.0 ---------------------------------------- + #207 (LightBDD.Framework)(Change) Modernised Html Report + #207 (LightBDD.Framework)(New) Added ability to overrride CSS styles, Logo and Favicon with cfg.ReportWritersConfiguration().AddFileWriter() method + #281 (LightBDD.Core)(New) Added IScenarioSetUp and IScenarioTearDown execution extension interfaces allowing to run scenario set up / tear down when implemented on fixture class + #281 (LightBDD.Core)(Change) Exposed IScenario.Fixture property allowing scenario decorators accessing the fixture object + #281 (LightBDD.Core)(New) Added ability to register global set up and tear down for resources and activities by using `ExecutionExtensionsConfiguration` + #282 (LightBDD.Framework)(Change) Updated Html Report to have collapsible sub-steps being collapsed by default + #288 (LightBDD.Core)(Change) Format of non-inline step parameters with <$name> parameter reference + #292 (LightBDD.Fixie3)(New) Created LightBDD.Fixie3 project with dependency on fixie 3.x + #292 (LightBDD.Fixie2)(Change) Deprecated LightBDD.Fixie2 project in favor of LightBDD.Fixie3 + #293 (LightBDD.MsTest3)(New) Created LightBDD.MsTest3 project with dependency on MSTest.TestFramework 3.x + #293 (LightBDD.MsTest2)(Change) Deprecated LightBDD.MsTest2 project in favor of LightBDD.MsTest3 + #294 (all)(Change) Updated net461 target framework to net462 (while leaving net461 coverage via .netstandard2.0 target framework) + #294 (LightBDD.XUnit2)(Change) Updated xunit package dependency version from 2.4.1 to 2.4.2 + #294 (LightBDD.Framework)(Change) Updated dependency versions of System.Text.Json to 6.0.8 and System.Collections.Immutable to 6.0.0 + #294 (VSIX)(Change) Updated package versions to latest + #296 (all)(Change) Added net6 target framework to all LightBDD packages Version 3.6.1 ---------------------------------------- + #276 (LightBDD.Framework)(Fix) Fixed casting null to Nullable for CastExpectation Version 3.6.0 ---------------------------------------- + #241 (LightBDD.Framework)(New) Added WithInferredColumns(InferredColumnsOrder columnsOrder) method to IInputTableBuilder and IVerifiableDataTableBuilder with option to add inferred columns in name or declaration order + #264 (LightBDD.Framework)(Fix) Corrected Html Report to expand feature background with the content + #265 (LightBDD.Framework)(Fix) Fixed InputTable and VerifiableTable to include Item column if no other columns are present and fail if provided object count and instances do not match + #265 (LightBDD.Core)(New) Added IFormatSymbols.EmptyValue property + #265 (LightBDD.Core)(New) Added IValueFormattingService.Symbols property + #265 (LightBDD.Framework)(Change) Updated CollectionFormatter and DictionaryFormatter to format empty collections + #268 (LightBDD.Framework)(New) Added InputTree to provide detailed insights into the object structure upon progress and results rendering. + #268 (LightBDD.Framework)(New) Added VerifiableTree to provide detailed structural verification of actual versus expected object hierarchies + #268 (LightBDD.Framework)(New) Added Tree class with a set of methods to create InputTree and VerifiableTree parameters + #268 (LightBDD.Framework)(Change) Equal() expectation supports now comparison of numeric types that have equivalent values, i.e. 5.0 (double) to 5 (int) + #268 (LightBDD.Framework)(Change) CastFrom() expectation support now conversions of numeric types that have equivalent values, i.e. 5.0 (double) to 5 (int) + #268 (LightBDD.Framework)(Change) InputTable value cells are rendered on Html Report with background color being consistent with color of non-verifiable parameters (pink) + #273 (LightBDD.XUnit2)(Change) Updated integration to detect exceptions thrown in LightBddScopeAttribute.OnSetUp() and fail scenarios instead of breaking test pipeline Version 3.5.0 ---------------------------------------- + #260 (LightBDD.MsTest2)(Change) Updated MSTest.TestFramework to 2.2.10 + #260 (LightBDD.NUnit3)(Change) Updated NUnit dependency to 3.13.3 + #260 (LightBDD.Fixie2)(Change) Dropped netcoreapp2.0 support + #260 (Examples) Removed Example.LightBDD.MsTest2.UWP project as UWP is deprecated + #255 (LightBDD.Core) Added IStep.AttachFile() method allowing to add file attachments to steps and fired StepFileAttached progress notification event when attachment is made + #255 (LightBDD.Core) Added ReportWritersConfiguration.UpdateFileAttachmentsManager() to allow re-configuring file attachments storage + #255 (LightBDD.Framework) Added support to attach files to steps with StepExecution.Current.AttachFile() + #255 (LightBDD.Framework) Added FileAttachmentManager implementation and registered it with ReportWritersConfiguration.RegisterDefaultFileAttachmentManager() extension method to create attachments in ~/Reports folder + #255 (LightBDD.Framework) Updated DefaultProgressNotifier to notify on StepFileAttached event + #255 (LightBDD.Framework) Updated HtmlResultTextWriter / PlainTextReportFormatter / XmlReportFormatter to include file attachments + #225 (Core)(New) Introduced IProgressNotifier and processing events: FeatureStarting, FeatureFinished, ScenarioStarting, ScenarioFinished, StepStarting, StepFinished, StepCommented + #225 (Core)(New) Extended ScenarioExecutionContext with GetCurrentScenarioFixtureIfPresent to return fixture object executing given scenario + #225 (Framework)(New) Introduced ProgressNotifierConfiguration to configure IProgressNotifier instances and updated DefaultProgressNotifier, NoProgressNotifier to implement IProgressNotifier and added ParallelProgressNotifierProvider.CreateProgressNotifier() method + #225 (LightBDD.XUnit2/LightBDD.NUnit3/LightBDD.MsTest2/LightBDD.Fixie2)(Change) Updated projects to use IProgressNotifier configuration + #225 (Core/Framework)(Change) Obsoleted IScenarioProgressNotifier, IFeatureProgressNotifier, DelegatingScenarioProgressNotifier, DelegatingFeatureProgressNotifier and all methods using them Version 3.4.2 ---------------------------------------- + #257 (Core)(Bug) Added reset of step and scenario results upon retry in decorator Version 3.4.1 ---------------------------------------- + #248 (Framework)(Change) Improved MessageListener.EnsureReceived() to return friendly message dumps for common types + #252 (LightBdd.XUnit2)(Change) Added LightBddScopeAttribute.DiagnosticMessageSink property Version 3.4.0 (VSIX) ---------------------------------------- + #250 (VSIX) Updated LightBDD Visual Studio Extension to support VS2022 Version 3.4.0 ---------------------------------------- + #245 (Framework)(New) Implemented MessageListener to help testing message based services Version 3.3.1 ---------------------------------------- + #238 (Core)(Fix) Included parameter results in failed steps + #231 (Framework)(New) Updated ResourcePool with constructor accepting async resource factory method Version 3.3.0 ---------------------------------------- + #221 (VSIX)(Change) Merged Project templates and updated TargetFramework to net5 + #219 (Core)(New) Added LifetimeScope and IDependencyContainerV2 with support for scope creation with explicit lifetime Ids such as Global, Scenario, Local + #219 (Core)(New) Added InstanceScope and reimplemented DefaultDependencyContainer to support dependency registration with Single, Local, Transient and Scenario scope + #219 (Core)(New) Added DependencyContainerConfiguration.UseDefault() allowing configuration of DefaultDependencyContainer + #219 (Core)(New) Added ConfigureFallbackBehavior() to DefaultDependencyContainer configuration with FallbackResolveBehavior allowing to resolve unregistered types as transient instances or throw exception forcing explicit instantiation + #219 (Core)(Change) Updated core engine to initialize container with LifetimeScope.Global, start scenarios with LifetimeScope.Scenario and composite steps with LifetimeScope.Local scopes + #143/#219 (Framework)(New) Added IBddRunner.WithContext() and ICompositeStepBuilder.WithContext() overloads allowing to create context using resolver and running additional configuration of the resolved instance with Action onConfigure + #219 (LightBDD.Autofac)(Change) Updated Autofac integration to implement IDependencyContainerV2 and support InstancePerMatchingLifetimeScope(LifetimeScope.Scenario) registrations + #219 (LightBDD.LightBDD.Extensions.DependencyInjection)(Change) Updated DependencyInjection integration to share container scope between scenario and composite steps by default and made it configurable with DiContainerOptions.EnableScopeNestingWithinScenarios() + #214 (all) Updated all projects to target netstandard2.0 and net461, retiring previous framework support + (LightBDD.Fixie2)(Change) Updated Fixie version to 2.2.2 Version 3.2.0 ---------------------------------------- + #206 (all)(New) Added explicit netstandard2.0 support to simplify dependency resolution + #210 (LightBDD.Fixie2)(Change) Updated Fixie version to 2.2.1 + #210 (LightBDD.MsTest2)(Change) Updated MSTest.TestFramework version to 2.1.1 + #210 (LightBDD.NUnit3)(Change) Updated NUnit version to 3.12.0 + #210 (LightBDD.XUnit2)(Change) Updated xunit version to 2.4.1 Version 3.1.1 ---------------------------------------- Summary: + #181 (Framework)(Change) Improved compact step parsing and rendering + #182 (Framework)(Change) Made step parsing issues easily discoverable + #185 (LightBDD.XUnit2)(Fix) Using skip feature with XUnit InlineData attribute throws InvalidOperationException + #187 (Autofac/LightBDD.Extensions.DependencyInjection) Improved disposal behavior of pre-configured DI containers + #199 (Framework)(Change) Improved Html/Xml/Text reports to present scenarios orderly manner Details: + #181 (Framework)(Change) Improved compact steps formatting to exclude control characters, don't perform additional formatting and render properly in HTML reports + #181 (Core)(Change) Updated StepDescriptor with configurable IsNameFormattingRequired property, controlling if RawName should be formatted or not + #182 (Core)(New) Implemented StepDescriptor.CreateInvalid(Exception ex) for creating step descriptors that failed to initialize + #182 (Core)(Change) Updated scenarios and composite-steps to fail fast if any of step-descriptor is invalid + #182 (Framework)(Change) Updated step compilers to create invalid descriptors instead of throwing upon parsing failure + #185 (LightBDD.XUnit2)(Fix) Updated LightBDD.XUnit2 to allow running scenarios with InlineDataAttribute having specified Skip property value + #185 (LightBDD.XUnit2)(New) Updated LightBDD.XUnit2 to recognize Skip property on Scenario and InlineData attributes and include those scenarios in reports + #185 (LightBDD.XUnit2)(New) Added UseXUnitSkipBehaviorAttribute to enforce default xunit behavior for skipped scenarios + #187 (Autofac) Updated UseAutofac() to require specifying takeOwnership flag for passed container + #187 (LightBDD.Extensions.DependencyInjection) Updated UseContainer() to require specifying takeOwnership flag for passed provider Version 3.1.0 ---------------------------------------- + #191 (Core)(Change) Expanded IScenarioInfo, IStepInfo with Parent property + #191 (Core)(Change) Expanded IFeatureInfo, IScenarioInfo, IStepInfo with RuntimeId property + #191 (Framework)(Change) Updated XmlReportFormatter to include RuntimeId Version 3.0.1 ---------------------------------------- + #177 (Framework)(Fix) Scenarios built fluently are not executed properly Version 3.0.0 ---------------------------------------- + #157 (All) Signed all assemblies except LightBDD.Fixie2 + #163 (Core)(Change) Updated DefaultExceptionFormatter to exclude "End of stack trace" lines + #170 (NUnit2) Removed LightBDD.NUnit2 + #152 (All) Removed obsolete code + #152 (Framework) Unified scenario extensions * Unified scenario extension namespaces to `LightBDD.Framework.Scenarios` * Removed `RunScenarioActionsAsync()` method in favor of `Runner.AddSteps(/*async void*/).RunAsync()` * Removed `Runner.NewScenario()` in favor of Runner being fluent by default + #152 (Framework) Unified configuration namespaces to either `LightBDD.Core.Configuration` or `LightBDD.Framework.Configuration` + #152 (Framework/Core) Reworked framework-core abstractions * Removed `Enrich()` methods * Reimplemented internals of scenario / step execution code * Removed optional enabling of commenting feature and other basic features and made them always enabled * Rework how `LightBDDConfiguration` and `IntegrationContext` is being passed to framework and implementations * Removed `DebuggerStepThrough` attributes + #152 (VSIX) Updated templates and snippets + #152 (All) Updated logo + #165 (Framework) Updated basic syntax compiler to not accept compiler generated methods + #174 Allowed IgnoreScenarioAttribute on class level to ignore all scenarios in feature Version 2.5.0 ---------------------------------------- Summary: + #60 (VSIX)(New) Implemented Project Templates in VSIX extension + #61 (VSIX)(New) Implemented snippets for scenario and composite steps in VSIX extension + #148 (Framework)(Fix) Expect.To.BeAnyTrue() with no sub-expectations should fail + #153 (LightBDD.XUnit2)(Examples) Updated dotnet test examples for xunit2 to reflect the newest framework changes + #156 (Framework)(New) Implemented compact step syntax allowing inline step definitions + #160 (LightBDD.Fixie2)(Change) Updated Fixie dependency to v2.0.2 to detect tests in VS 15.8 and higher Version 2.4.3 ---------------------------------------- Summary: + #145 (LightBDD.Core)(Fix) NULL value not assignable to Nullable parameter Version 2.4.2 ---------------------------------------- Summary: + #127 (LightBDD.Core)(Fix) Fixed FeatureRunnerRepository to instantiate FeatureRunner once per feature type + #128 (LightBDD.MsTest2)(Change) Updated progress notifiers to work with scenarios executed in parallel + #134 (LightBDD.Framework)(New) Added State helper struct managing uninitialized shared state fields + #135 (all)(New) Added sourcelink integration to all packages + #137 (LightBDD.Framework)(Bug) Unable to specify absolute path to report location on Linux Version 2.4.1 ---------------------------------------- Summary: + #122 (LightBDD.Extensions.DependencyInjection)(New) Provided integration with DI containers implementing Microsoft DI abstractions + #123 (LightBDD.XUnit2)(Change) Improved experience with running parameterized scenarios Version 2.4.0 ---------------------------------------- Summary: + #38 (all)(New) Added ability to specify verifiable parameters + #38 (all)(New) Added Expect.To.* expectation expressions + #59 (Core)(New) Added support for DI container + #59 (Framework)(New) Implemented default DI container + #59 (Autofac)(New) Added LightBDD.Autofac integration for Autofac DI container + #67 (Fixie)(New) Added LightBdd.Fixie2 integration project with https://github.com/fixie/fixie + #70 (all)(New) Added InlineTable, VerifiableDataTable, TableValidator classes to represent tabular step method parameters and Table class to create them + #117 (XUnit2)(New) Added experimental ClassCollectionBehavior attribute allowing inter-class test parallelization + #120 (Framework)(Fix) StepExecution.Current.Comment() does not work after leaving sub-step in composite step Version 2.3.6 ---------------------------------------- Summary: + #108 (Core)(Change) Allowed IStepDecoratorAttribute and IScenarioDecoratorAttribute to be applied on class level Version 2.3.5 ---------------------------------------- Summary: + #104 LightBDD does not recognize xunit Category traits Details: + #104 (XUnit2)(Change) Updated LightBDD.XUnit2 integration to recognize [Trait("Category", "...")] as scenario category Version 2.3.4 ---------------------------------------- Summary: + #34 Implemented console immediate progress notification for LightBDD.NUnit3 + #34 Enhanced scenario progress notification + #98 Lifted requirement for parameterized constructors in LightBDD.XUnit2 FeatureFixture Details: + #34 (NUnit3)(New) Implemented immediate progress notification when executed with `dotnet test` or `nunit3-console.exe` + #34 (XUnit2)(Change) Simplified scenario summary printed in VisualStudio Test Explorer output / Resharper output and console output for LightBDD.XUnit2 + #34 (Framework)(New) Added ClearNotifiers() / AppendNotifiers() methods to FeatureProgressNotifierConfiguration in order to simplify combining different notifiers + #34 (Framework)(New) Added ClearNotifierProviders() / AppendNotifierProviders() methods to ScenarioProgressNotifierConfiguration in order to simplify combining different notifiers + #34 (all integrations)(New) Added AppendFrameworkDefaultProgressNotifiers() extensions to FeatureProgressNotifierConfiguration and ScenarioProgressNotifierConfiguration to allow re-applying integration specific notifiers after they has been cleared + #98 (XUnit2)(Change) Added parameter-less constructor to FeatureFixture + #98 (VSIX)(Change) Updated LightBDD.XUnit2 feature tempaltes to generate classes without parameterized constructor Version 2.3.3 ---------------------------------------- Summary: + #69 Simplified exception stack trace for failed scenarios + #90 Improved integration with NCrunch + #92 Improved support for extension methods used as steps + #94 Added support for disposable scenario and step context instances Details: + #69 (Core)(Change) Exposed DefaultExceptionFormatter with ability to filter stack trace members and limit number of printed stack trace lines. Excluded async exception rethrow frames by default (reports and progress notifers) + #69 (Core)(New) Introduced ScenarioExecutionException to be used to propagate scenario/step exceptions without recording LightBDD internal frames + #69 (Framework)(Change) Simplified exception stack trace for basic/extended/fluent step syntax and sync/async runners + #69 (all integrations)(Change) Configured DefaultExceptionFormatter to exclude underlying test framework assertion frames from reports and progress notifiers + #69 (Core)(Change) Changed minimal required .NET Standard version from 1.1 to 1.3 + #90 (Core)(Change) Allowed to install new FeatureCoordinator when previous one is disposed in order to allow NCrunch reusing the same process to run LightBDD multiple times + #92 (Core)(Change) Excluded 'this' argument from step name display when extension method is used + #92 (Core)(Change) Corrected parameter placement in name when having appended parameter of lower index than matching in-text replacement at the end of the name, like: void Step_with_param(string other, string param) + #94 (Core)(Change) Added WithContext(Func contextProvider, bool takeOwnership) to IScenarioRunner and IIntegrableCompositeStepBuilder allowing to specify if created context should be disposed by runner + #94 (Framework)(Change) Updated contextual scenario and contextual composite step .WithContext() methods to automatically dispose context instances + #94 (Framework)(Change) Updated contextual scenario and contextual composite step .WithContext(TContext context) methods to .WithContext(TContext context, bool takeOwnership = false) making possible to configure automatic context disposal (off by default) + #94 (Framework)(Change) Updated contextual scenario and contextual composite step .WithContext(Func contextFactory) methods to .WithContext(Func contextFactory, bool takeOwnership = true) making possible to configure automatic context disposal (on by default) Version 2.3.2 ---------------------------------------- Summary: + #80 Updated LightBDD.MsTest2 to use MsTest.TestFramework 1.2.0 + #87 Fixed directory separator for Unix systems Details: + #87 (Framework)(Fix) Use the System.IO.Path.DirectorySeparatorChar in file paths to match Unix and Win paths + #80 (MsTest2)(Change) Updated LightBDD.MsTest2 to use MsTest.TestFramework 1.2.0: that version is not binary compatible with 1.1.18 so it was not possible to use LightBDD.MsTest2 with newest MsTest Version 2.3.1 ---------------------------------------- Summary: + #73 Fixed "Tests accessing Application Settings fails on NET45x with SerializationException: TestContextProvider is not marked as serializable" Details: + #73 (Framework)(Fix) Corrected AsyncLocalContext in LightBDD targeting NET45x to marshal stored context by ref when transferring it between domains Version 2.3.0 ---------------------------------------- Summary: + #20 Reworked parameter formatting and added default formatters for scenario/step parameters as well as facility to register own assembly-wide formatters + #28 Updated parameter formatters to distinguish null values and format them as "" + #42 Added IgnoreScenarioAttribute allowing to declaratively ignore the scenario when applied on scenario or step method + #18 Added MultiAssertAttribute that if applied on scenario or composite step, will make all sub-steps executed irrespectively of previous step status and report any exceptions at the end of all sub-steps execution + #17 Added fluent interface for defining and executing scenarios in basic and extended syntax. Details: + (Core)(New) #42 Added IScenarioDecoratorAttribute, IStepDecoratorAttribute interfaces allowing to describe execution decorator attributes applicable on scenario or step methods + (Core)(Change) #18 Added IScenarioDecorator/IStepDecorator interfaces in favor of IScenarioExecutionExtension/IStepExecutionExtension ones which are obsoleted now + (Framework)(Change) #17 Moved ICompositeStepBuilder to LightBDD.Framework.Scenarios namespace + (Core)(New) #20 Added IValueFormattingService allowing to format values of any type, based on format attributes, assembly-wide formatters, ISelfFormattable interface or ToString() method + (Core)(New) #20 Added IValueFormatter, IConditionalValueFormatter interfaces allowing to assembly-wide formatters for scenario and step parameters + (Core)(New) #20 Added ISelfFormattable interface allowing to define value formatting method on type level + (Core)(New) #20 Added ValueFormattingConfiguration allowing to configure assembly-wide formatters for scenario/step parameters + (Core)(Change) #20 Updated ParameterFormatterAttribute to implement IConditionalValueFormatter interface, and allowed to apply multiple format attributes on a single parameter to customize formatting of various types within complex types + (Framework)(Change) #20 Added SupportedType property to FormatAttribute allowing to narrow it's applicability + (Framework)(New) #17 Added NewScenario() extension method for IBddRunner, allowing to define scenarios is fluent way + (Framework)(New) #17 Added AddSteps() extension method for IScenarioBuilder, allowing to add basic and extended steps to a fluent scenario builder Version 2.2.0 ---------------------------------------- Summary: + #21 Changed the signature RunScenarioAsync/RunScenarioActionsAsync to explicitly state they are async + #22 Updated LightBDD.MsTest2 / LightBDD.XUnit2 / LightBDD.NUnit3 to capture scenario parameters + #23 Enhance rules for determining the step type in extended scenarios (allowing x => Given_ syntax) + #19 Implement composite steps + #27 Update VSIX templates for VS2017 + Updated LightBDD.XUnit2 to target .NET Framework 4.5.2 instead of 4.5 (as xunit 2.2 no longer support net 4.5) Details: + (Core)(Change) #22 Updated LightBDD.Core IMetadataProvider to allow capturing scenario methods with arguments + (Core)(Change) #22 Updated XmlReportFormatterSchema.xsd and XmlReportFormatter to include Scenario Name details + (Core)(Change) #23 Changed runner to use lambda parameter name as step type only if name is more than 1 character + (Core)(Change) #23 Added StepTypeConfiguration.UseLambdaNameAsStepType property allowing to control this behaviour + (Core)(Change) #23 Implemented sealable LightBddConfiguration allowing to make configuration read only + (Core)(New) #19 Updated engine to support composite step execution and reporting + (Framework)(New) #19 Added CompositeStep class that can be returned by step method + (Framework)(Change) #19 Updated Xml/Html/PlainText report writters to include composite step details + (Framework)(Change) #19 Updated progress notifiers include composite step details + (Core)(Change) #19 Updated XmlReportFormatterSchema.xsd to include GroupPrefix attribute and SubSteps elements on Step type + (Core)(Change) #19 Updated exception capture in steps and scenarios to include more details about exception and added LightBddConfiguration.ExceptionHandlingConfiguration() extension method to configure it + (all integrations) Updated dependencies to the newest ones Version 2.1.0.1 (VSIX only) ---------------------------------------- + Updated VSIX to include Pro and Enterprise versions, VisualStudio 2012, 2013 and 2015 (including VS2012 Premium) Version 2.1.0 ---------------------------------------- Summary: + #12 extended support for .NET Framework 4.5 + #13 Updated MSTest.TestFramework to 1.1.11 and xunit to 2.2.0 + #11 Refactored code to make debugger only jump into code that is important during scenario debugging + #14 Extended .NET Standard support to 1.3 for LightBDD.Framework/LightBDD.XUnit2/LightBDD.MsTest2 + #14 Added LightBDD.Example.AcceptanceTests.MsTest2.UWP project + #16 Added LightBDD.NUnit2 depending on NUnit 2.6.4 and added VS ItemTemplate for it + Added deprecated meta packages to simplify migration from LightBDD 1.x + Added readme.txt to integration packages Version 2.0.0 ---------------------------------------- Summary: + Reimplemented assemblies to support multiple platforms (.NET Standard 1.6 / .NET Framework 4.6) + Reimplemented assemblies to support async test execution (added support for async void step methods) + Splitted LightBDD.Core to LightBDD.Core and LightBDD.Framework; adjusted namespaces + Changed app.config based configuration to more flexible LightBDDConfiguration mechanism + Implemented portable versions of NUnit 3, XUnit 2 and MsTest 2 integrations + Dropped support for MbUnit, NUnit 2 and MsTest integrations + Reworked LightBDD.SummaryGeneration namespace to LightBDD.Reporting Details: + (Core)(Change) Reimplemented LightBDD.Core to support async test execution + (Core)(Change) Reimplemented LightBDD.Core to support .NET Standard 1.1 and .NET Framework 4.5 + (Core)(Change) Reimplemented consecutive step type name replacement + (Core)(Change) Reimplemented name and parameter formatting to support parameterizing for all names (features, scenarios, steps) as well as specified CultureInfo + (Core)(New) Introduced IFeatureBddRunner to represent the feature itself (type) and contain it's results, and made IBddRunner/IFeatureFixtureRunner lightweight but fixture instance specific. + (Core)(New) Splitted IProgressNotifier to IFeatureProgressNotifier nad IScenarioProgressNotifier. Modified behaviour of runner to create IScenarioProgressNotifier instance for each scenario. + (Core)(New) Implemented LightBDDConfiguration mechanism and provided configuration mechanisms for all configurable LightBDD features + (Framework)(New) Extracted non core classes from LightBDD.Core and formed LightBDD.Framework + (Framework)(Change) Reimplemented runner to provide IBddRunner interface with extensibility API based on extension methods + (Framework)(Change) Reimplemented basic, extended and contextual scenarios + (Framework)(Change) Reimplemented commenting feature to support async tests and being used via extension methods + (Framework/ all integrations)(Change) Implemented LightBDD scope and changed the way how LightBDD initializes and finalizes execution + (Framework)(Change) Reimplemented LightBDD.SummaryGeneration namespace as LightBDD.Reporting; added more detailed execution times information + (Framework)(Change) Merged FormattableSummaryFileWriter functionality to ReportFileWriter + (Core/Framework)(New) Added RunScenarioActionsAsync to basic and extended scenarios to allow mixing void and async void actions + (XUnit 2)(Change) Reimplemented integration with XUnit 2 (.NET Standard 1.6 and .NET Framework 4.6) + (XUnit 2)(New) Added ITestOutputProvider to XUnit 2 integration and made FeatureFixture implementing it. + (MsTest)(Deprecation) Dropped support for MsTest in favor of MsTest 2 + (MsTest 2)(New) Implemented initial implementation of MsTest 2 (.NET Standard 1.6 and .NET Framework 4.6) + (MbUnit)(Deprecation) Dropped support for MbUnit (as testing framework is dead) + (NUnit 2)(Deprecation) Dropped support for NUnit 2 in favor of NUnit 3 + (NUnit 3)(Change) Reimplemented integration with NUnit 3 (.NET Standard 1.6 and .NET Framework 4.6) + (all integrations)(New) Implemented ScenarioAttribute and made it required; Impelemnted FeatureFixtureAttribute and added it to FeatureFixure classes. + (all integrations) Added "~\\Reports\\FeaturesReport.html" to default report writers + (VSIX) (Change) Update item templates for LightBDD 2; dropped Project Templates + (all)(Change) Standardized namespaces to match to assembly name + (all)(Change) Updated logo Version 1.7.2 ---------------------------------------- Summary: + Added FormattableSummaryFileWriter allowing to parameterize summary files paths with execution date/time parameters. + Extended SummaryWriterCollection with Type property allowing to change type of used ISummaryWriter implementation (default is SummaryFileWriter). Version 1.7.1 ---------------------------------------- Summary: + Added support for NUnit3 testing framework + Extended SummaryFileWriter to support paths starting with ~ for result files, where ~ is resolved to CurrentDomain.BaseDirectory + Modifier SummaryWriterCollection to use "~\\FeaturesSummary.xml" path for default XmlResultFormatter Details: + (NUnit3)(New)(Issue #9) Added support for NUnit3 testing framework + (Core)(Change) Extended SummaryFileWriter to support paths starting with ~ for result files, where ~ is resolved to CurrentDomain.BaseDirectory (that solves the issue with NUnit3 Resharper runner that does not honour working directory) + (Core)(Change) Modifier SummaryWriterCollection to use "~\\FeaturesSummary.xml" path for default XmlResultFormatter + (Core)(Change) Removed unreliable tests for FeatureCoordinator Version 1.7.0 ---------------------------------------- Summary: + Implemented scenario steps auto-grouping for consecutive steps starting with the same name type (given/when/then/setup), by replacing following steps type to 'and' + Added ability to add runtime comments to currently executed steps + Added support for xUnit.net testing framework + Extended XmlResultFormatter / XmlResultFormatterSchema.xsd to include step comments and step name details + Added new implementations of IProgressNotifier interface Details: + (Core)(New)(Issue #6) extended TestMetadataProvider with NormalizeStepTypeName() method that replaces step type of consecutive steps with same type to 'AND', making scenario like GIVEN, GIVEN, WHEN, THEN => GIVEN, AND, WHEN, THEN + (Core)(New)(Issue #6) extended lightbdd section in app.config with element, allowing to configure TestMetadataProvider behavior + (Core)(New)(Issue #7) extended StepExecution with Comment() and CommentFormat() methods, allowing to mark currently executed steps with comments + (Core)(New)(Issue #7) extended IProgressNotifier/ConsoleProgressNotifier with NotifyStepComment() method to notify that comment has been added to step + (Core)(New) added DelegatingProgressNotifier allowing to delegate notifications to multiple notifier instances + (Core)(New) added SimplifiedConsoleProgressNotifier allowing to display a simplified progress on console, suitable for parallel test execution + (XUnit)(New) added LightBDD.XUnit integration + (XUnit)(New) added ScenarioAssert with Ignore() method, allowing to ignore not fully implemented scenarios at runtime (integrated with 'Ignored' status in LightBDD reports) + (XUnit)(New) added ScenarioAttribute as a replacement for xUnit Fact/Theory attributes, allowing to mark tests with 'Skipped' status if ScenarioAssert.Ignore() method is used + (XUnit)(New) added XUnitOutputProgressNotifier to include execution progress on the test window in Visual Studio + (XUnit)(New) added FeatureFixture that uses XUnitOutputProgressNotifier and SimplifiedConsoleProgressNotifier by default + (Core)(Change)(Issue #6) extended TestMetadataProvider to determine a step type name (given, when, then, setup, and) basing on step name, if type is not provided explicitly (GetStepTypeNameFromFormattedStepName) (Issue #6) + (Core)(Change)(Issue #7) changed ConsoleProgressNotifier.NotifyStepFinished() to include name of finished step, allowing easy step tracking if progress is mixed with execution logs + (Core)(Change)(Issue #7) changed Html/Xml/PlainText result formatters to include step comments in reports and updated XmlResultFormatterSchema.xsd + (Core)(Change) extended XmlResultFormatter and XmlResultFormatterSchema.xsd file with StepName details (type, format, parameters) Issues done: #6: Feature request: autogrouping scenario steps #7: Feature Request: Support for logging arbitrary text which will appear in the reports Version 1.6.1 ---------------------------------------- + HtmlResultFormatter: highlighted ignored and bypassed scenarios and provided links to scenario details + Modified parameterized steps to provide detailed information on parameters causing format failure during scenario execution + Included scenarios causing initialization failure due to parameter formatting problems in reports + Added FormatBooleanAttribute for formatting step parameters of boolean type + HtmlResultFormatter: added favicon and footer to HTML report + Removed Item Templates from LightBDD packages + Created 'LightBDD for Visual Studio' extension (available on Visual Studio Gallery) Version 1.6.0 ---------------------------------------- Summary: + major improvements to Html features report summary (HtmlResultFormatter), + added ability to bypass step execution without stopping scenario execution, + added ability to specify custom formatting rules for step parameters, + added ability to annotate scenarios with categories, + many smaller improvements. Details: + added ability to bypass step execution without stopping scenario execution (StepExecution.Bypass() method and ResultStatus.Bypassed enum value) + added ability to specify custom formatting rules for step parameters (Format/ParameterFormatter Attributes) + added ability to annotate scenarios with categories (ScenarioCategoryAttribute and implementation specific attributes) + changed Scenario level StatusDetails property to aggregate all step status details + changed FeatureCoordinator to allow only one Finished() method call and report it's finalizer execution time and failures with System.Diagnostics.Trace() + enhanced parameterized steps to always capture constant parameter values, even if step has not been executed + enhanced IStepResult with StepName property providing detailed information on step name like base format, parameter list or step type (added IStepName, IStepNameDecorator, StepNameDecorators types) + HtmlResultFormatter: reorganized HTML output to support longer text in features and scenarios + HtmlResultFormatter: enhanced report to highlight step type and parameters + HtmlResultFormatter: added option to expand/collapse all features and/or scenarios + HtmlResultFormatter: added option to filter scenarios by category + HtmlResultFormatter: made Feature Summary table columns sortable + HtmlResultFormatter: added shareable link for speficic feature, scenario, Feature Details section and whole document, all preserving current filters selection + HtmlResultFormatter: added Average Duration column to Feature Summary block + HtmlResultFormatter: changed expand-collapse symbols to standard ones, to display them properly on android browsers + XmlResultFormatter: added step level StatusDetails element + PlainTextFormatter: labels are now printed after feature/scenario name, like in HtmlResultFormatter + all formatters: added information about scenario categories + TestMetadataProvider: added GetStepTypeName method + TestMetadataProvider: removed stepType from GetStepNameFormat signature, obsoleted version with stepType + added DebuggerStepThrough attribute to implementation specific metadata provider + exposed TimeFormatter extensions for pretty time span formatting Version 1.5.1.1 ---------------------------------------- + corrected HtmlResultFormatter to display long blocks of scenarios properly Version 1.5.1 ---------------------------------------- Summary: + added integration with MsTest framework + multiple improvements to Feature Summary generators + improved debugging experience of LightBDD scenarios + added XmlResultFormatterSchema.xsd + better support for mixing steps of simplified and extended syntax Details: + extended HtmlResultFormatter to display switch to show/hide each feature and scenario details + extended HtmlResultFormatter to provide detailed summary about executed steps + improved HtmlResultFormatter css styles, added labels to check boxes + extended TestMetadataProvider to format stepType before is added to step name (allows to use methods like _ => Then_value_is(5)) + reorganized example projects to show the same tests in different test frameworks + added integration with MsTest framework => LightBDD.MsTest + extended FeatureCoordinator with OnBeforeFinish / OnAfterFinish events + improved debugging experience of LightBDD scenarios + extended PlainTextResultFormatter and XmlResultFormatter to include summary blocks like in HtmlResultFormatter + added XmlResultFormatterSchema.xsd for FeaturesSummary.xml output xml file Version 1.5.0 ---------------------------------------- Summary: + fluent interface for scenario creation + parameterized steps support + capturing execution start and duration of scenarios and steps (https://github.com/LightBDD/LightBDD/issues/5) + improvements to HtmlResultFormatter Details: + introduced IScenarioBuilder/ICustomizedScenarioBuilder fluent interfaces for scenario creation, added NewScenario() methods to AbstractBDDRunner + added support for parameterized steps in AbstractBDDRunner.RunScenario() / IScenarioBuilder.Run() methods + implemented argument insertion to parameterized step name + added support for proper capture of mutable step arguments + obsoleted all RunScenario() methods that allows to provide scenarioName or label + added execution start and execution time capture for steps and scenarios + altered IProgressNotifier.NotifyScenarioFinished() to accept IScenarioResult + added IProgressNotifier.NotifyStepFinished() + extended ConsoleProgressNotifier and PlainTextResultFormatter/XmlResultFormatter/HtmlResultFormatter to display execution times for steps and scenarios + extended HtmlResultFormatter to generate Execution and Feature summary + extended HtmlResultFormatter to generate filtering by status options for scenarios/features + corrected HtmlpResultFormatter styles for better experience of copying summary reports into Word documents + corrected HtmlResultFormatter to escape HTML specific characters in displayed text Version 1.4.0 ---------------------------------------- + fixed PlainTextResultFormatter to be usable for feature summary generation + changed PlainTextResultFormatter to display status details below steps + added SummaryFileWriter allowing to save feature results summary to file in specified format + added SummaryGenerator with multiple summary writers support to aggregate and save feature results + added support for feature summary format/file name configuration in app.config file. + modified FeatureCoordinator to use SummaryGenerator as default Aggregator and use app.config to configure it + obsoleted TestResultsSummary and FeatureSummaryAggregator classes + modified example project to present how to use feature summary with app.config + modified way the NuGet packages are created so symbol packages are now generated as well Version 1.3.0 ---------------------------------------- + added RunScenario() methods accepting shared context which allows to run tests safely in parallel + added examples for parallel test execution + added examples showing LightBDD behavior in case of test failure Version 1.2.1 ----------------------------------------- + added HtmlResultFormatter Version 1.2.0 ------------------------------------------ + extracted NUnit related code to LightBDD.NUnit + introduced LightBDD.MbUnit to add support for MbUnit framework + made runner thread safe which allows to use Runner.RunScenario() in parallel + added FeatureDescription attribute which can be used to describe feature class no matter which testing framework is used Version 1.1.4 ------------------------------------------- + extended FeatureFixture with CreateProgressNotifier() method allowing to specify IProgressNotifier used by BDDRunner. Version 1.1.3 ------------------------------------------- + added StatusDetails to IStepResult and IScenarioResult, providing details for Failed/Ignored status + modified XmlResultFormatter, PlainTextResultFormatter and ConsoleProgressNotifier to include StatusDetails Version 1.1.2 ------------------------------------------- + fixed scenario name display for LightBDD being compiled in Release mode, + introduced [Label] attribute allowing to apply label on feature test class or scenario method (like ticket number) + adjusted result formatters and progress notifiers to include label Version 1.1.1 ------------------------------------------- + introduced TestCoordinator and FeatureSummaryAggregator + introduced FeatureFixture base class for feature tests + with usage of FeatureFixture, no additional classes are needed to create in order to save result summary + simplified Visual Studio Project Item Templates Version 1.1.0 ------------------------------------------- + added PlainTextResultFormatter and XmlResultFormatter to format test results + added TestResultsSummary class to collect all results and save them to xml file + added detection of feature name based on test class name + added feature description based on [Description] attribute + added Visual Studio Project Item templates to create base test classes and feature test classes Version 1.0.0 ------------------------------------------- + implemented BDDRunner with RunScenario method + added detection of scenario name based on calling method name + added step name formatting + added progress notification (on console)