-
Notifications
You must be signed in to change notification settings - Fork 44
/
Copy pathChangelog.txt
586 lines (530 loc) · 43.3 KB
/
Changelog.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
LightBDD
===========================================
Version 3.10.0
----------------------------------------
+ #358 (LightBDD.Framework)(New) Added MarkdownReportFormatter as Github friendly report formatter
+ #365 (LightBDD.Framework)(New) Added ResetActual() method to Verifiable/VerifiableTable/VerifiableTree to allow setting them once more
+ #350 (LightBDD.Core)(New) Added IScenario.Descriptor property providing access to scenario MethodInfo
Version 3.9.0
----------------------------------------
+ #357 (LightBDD.Framework)(New) Implemented Expect.To.BeOfType() and Expect.To.BeCastableTo()
+ #356 (LightBDD.Core)(Change) Captured LightBddScope OnConfigure() failures
+ #352 (LightBDD.XUnit2)(Change) Obsoleted FeatureFixture constructor that accepts ITestOutputHelper in favour of parameterless ctor
+ #353 (LightBDD.Framework)(Change) Changed StepExecution.Current.Bypass() and StepExecution.Current.IgnoreScenario() to validate that they are called within running scenario
+ #351 (LightBDD.Framework)(Change) Updated Expect.To.BeLike()/BeLikeIgnoreCase() to match multiline text
+ #351 (LightBDD.Framework)(New) Added Expect.To.Match(string, RegexOptions) overload
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<HtmlReportFormatter>() 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<T> to provide detailed insights into the object structure upon progress and results rendering.
+ #268 (LightBDD.Framework)(New) Added VerifiableTree<T> 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<T> and VerifiableTree<T> 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<TContext> 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<T>() 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<bool> 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<T> 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<TRow>, VerifiableDataTable<TRow>, TableValidator<TRow> 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<object> 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<TContext>() methods to automatically dispose context instances
+ #94 (Framework)(Change) Updated contextual scenario and contextual composite step .WithContext<TContext>(TContext context) methods to .WithContext<TContext>(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<TContext>(Func<TContext> contextFactory) methods to .WithContext<TContext>(Func<TContext> 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<T> 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 "<null>"
+ #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<T> 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<T>, 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 <stepTypes predefined="given,when..." repeatedStepReplacement="and"/> 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)