2.10.0
What's Changed
π Core new features
Concurrent steps
Concurrency support by allure-csharp integrations was very limited. In this release we extend it. Steps from parallel/async tests as well as steps from parallel/async methods, sub-steps and operations now work as expected. That fixes a lot of concurrency-related errors that were usually manifested as NullPointerException (fixes #83, #106 and #367 by @delatrie via #371, #383 and #388 by @delatrie via #393).
Selective run
Selective run is now supported for all integrations (implements #372 by @delatrie via #392).
π¬ Core improvements
Improved identification properties
Id properties (fullName, testCaseId, historyId) are fixed to prevent the following potential problems:
- test results of different test cases are interpreted as reruns of a single test case
- multiple test cases are created from test results of a single parametrized test case
(implements #373 and #387 by @delatrie via #395)
Improved parameter formatting
Test and step parameters are now converted to strings using JSON conversion algorithm. It is much more versatile than the plain ToString() call.
The same goes for step parameters interpolated into the step's title (by @delatrie via #395).
Custom type formatters
A user can add an implementation of Allure.Net.Commons.TypeFormatter[T] via the AllureLifecycle.Instance.AddTypeFormatter[T] method. Previously, such formatters were just ignored. Now, they are automatically used to format test and step parameters as well as step titles in case the type of a parameter value is the same as the formatter's generic type argument (fixes #377 by @delatrie via #395).
JSON schema for allureConfig.json
JSON schemas are available for allureConfig.json at https://raw.githubusercontent.com/allure-framework/allure-csharp/<version>/<package>/Schemas/allureConfig.schema.json. You can use the schemas to validate the config file or explore available properties (by @delatrie via #395).
Language and framework labels
The language and framework labels are now added to all test results by all integrations (by @delatrie via #395).
Debug symbols
Debug symbols (.snupkg files) are now available on NuGet for all packages (by @delatrie via #382).
π Core bug fixes
- Fixed
InvalidCastExceptionwhen underlying step returns Task masked as non-generic Task (by @eranikid via #343).
Allure-nunit
π¬ Improvements
- Creating steps in a [OneTimeSetUp] method of a [TestFixture] is now supported (fixes #286 and #374 by @delatrie via #380).
- Attachments are now automatically created from console output (implements #305 by @undron via #306).
- Disable step logging to the console by default (fixes #312 by @undron via #313).
- The AllureId attribute added to the API (by @alekskulakov via #291).
π Bug fixes
- Skipped tests now include historyId and thus preserve their history across runs (fixes #345 by @delatrie via #395).
- An empty package label is added for a test class without a namespace. Previously
ArgumentOutOfRangeExceptionwas thrown (fixes #375 by @delatrie via #380).
Allure-specflow
π¬ Improvements
- Now if an after-feature hook fails, the scenarios' statuses remain intact instead of being changed to
broken. A placeholder scenario is added instead to indicate an error (by @delatrie via #371).
Allure-xunit
π New features
- Allure-xunit now works as a runner reporter. Native xUnit attributes
FactandTheoryare supported out-of-the-box (implements #344 by @delatrie via #366). - Static test methods are now supported (by @delatrie via #366).
π¬ Improvements
- Additional runner reporter can be run side-by-side with allure-xunit (implements #368 by @delatrie via #382). This behavior is configurable (see here).
- Status details of a skipped test now include the skip reason (by @tkeerthivel via #298).
π Bug fixes
- Now the default configuration is used if allureConfig.json is missing. Previously, a catastrophic failure occurred in such a case leading to the test run abortion (fixes #381 by @delatrie via #393).
β¬οΈ Dependency Updates
- Bump Microsoft.NET.Test.Sdk from 16.10.0 to 17.4.1 by @dependabot in #311
- Bump CsvHelper from 27.1.0 to 30.0.1 by @dependabot in #302
- Bump Newtonsoft.Json from 13.0.1 to 13.0.3 by @dependabot in #335
- Bump SpecFlow from 3.9.8 to 3.9.74 by @dependabot in #331
- Bump coverlet.collector from 3.1.2 to 3.2.0 by @dependabot in #324
- Bump AspectInjector from 2.7.3 to 2.8.1 by @delatrie in #382
π» Internal changes
- Steps for Allure.XUnit by @neparij in #273
- Add Allure.NUnit package. Big thanks to @unickq for great work on it! by @neparij in #280
New Contributors
- @IvanWR1995 made their first contribution in #271
- @andrey-brovko made their first contribution in #288
- @evgeniy-skt made their first contribution in #284
- @tkeerthivel made their first contribution in #298
- @dependabot made their first contribution in #311
- @danilov-sv made their first contribution in #327
- @askazakov made their first contribution in #330
- @smolchanovsky made their first contribution in #310
- @eranikid made their first contribution in #343
- @delatrie made their first contribution in #366
- @overlord made their first contribution in #314
- @undron made their first contribution in #306
- @alekskulakov made their first contribution in #291
Full Changelog: 2.9.1...2.10.0