Changelog History
Page 1
-
v3.0.0-beta.1
November 14, 2020 -
v3.0.0-alpha.3
September 19, 2020 -
v2.2.2 Changes
December 12, 2020๐ Fixes #246 "Enable
RollForward = Major
to run on later .NET Core versions": For the 2.x line, the Fixie.Console installed by DotNetCliToolReference respects major version roll-forward, so that consumers no longer have to install and old SDK just for invoking tests compiled with more recent SDKs. -
v2.2.1 Changes
April 26, 2020๐ The previous release supported .NET Core 3 test projects for most use cases, but as a happy coincidence. No action had to be taken in Fixie's implementation, as the existing support for .NET Core 2 carried forward naturally.
๐ Fixie 2.2.1 includes official support for such test projects. However, because
netcoreapp3.0
has already reached End-of-Life,netcoreapp3.0
is not supported. As a Long-Term-Support release,netcoreapp3.1
+ is supported. If you need to targetnetcoreapp3.0
, we recommend sticking with Fixie 2.2.0 until you can upgrade to a target framework supported by Microsoft.โจ Enhancements for .NET Core Test Projects:
- ๐ Improved readability of test failure stack traces for
netcoreapp2.1
+. - ๐ When consumers target
netcoreapp3.1
+, internal messaging serialization usesSystem.Text.Json.JsonSerializer
instead of the deprecatedDataContractJsonSerializer
, for its simpler API and improved performance. - ๐ Update VS Test Platform dependencies to take advantage of their performance improvements.
- ๐ Fixed the ability to run tests under the debugger in Visual Studio's Test Explorer for
netcoreapp3.1
+ test projects.
โจ Enhancements when running on Azure DevOps:
- โ When a test assembly completes, the test run as a whole is marked as completed. Doing so lights up several elements in the Azure DevOps "Tests" screen: assembly-level success/failure icons, assembly-level durations, and high-level statistics.
- โ When posting skipped test results to Azure DevOps, use the 'outcome' value 'Warning'. This allows the Azure DevOps UI to properly categorize the result, to display a warning icon by the result, and to pass through the skip reason as a visible message. Don't skip tests.
- ๐ #211: Improved logging and error handling around Azure DevOps API failures, allowing test runs to complete with full details in the build log and an accurate exit code even when the Azure DevOps API fails completely.
Other Enhancements:
- โ
Because AppVeyor relies on test case name + the assembly
FileName
to distinguish unique results, include the target framework in thatFileName
. This way, test results are correctly distinguished from each other during test runs of multitargeted test assemblies. - ๐ฆ Modernize deprecated elements in NuGet packages.
- ๐ Improved readability of test failure stack traces for
-
v2.2.0 Changes
October 05, 2019๐ When running under Azure DevOps, if you have configured your Pipeline to allow access to the Azure DevOps test reporting API, Fixie will report each test result so that they will appear on the build's "Tests" screen. If you forget that configuration, the console output will provide guidance based on the Azure DevOps documentation (https://docs.microsoft.com/en-us/azure/devops/pipelines/build/variables#systemaccesstoken)
-
v2.1.1 Changes
July 24, 2019โ When running tests in Visual Studio under Test Explorer:
- ๐ Improved error reporting, both in the Output pane and in the tree of test results, to help with troubleshooting.
- ๐ Improved performance when selecting a large number of individual tests to run in Test Explorer. Previously, we performed an excessive amount of reflection and redundant evaluation of which test classes and test methods need to be executed.
- โ Integrate with Test Explorer's test progress icons, so that the user can identify long-running tests.
- โ Graceful handling of catastrophic failures such as tests which perform Environment.Exit(...) or which throw StackOverflowException. Naturally such catastrophic errors force the test run to end early, and that is out of our control, but now we accurately report what happened in both the Test Explorer tree and in the 'Tests' Output pane.
-
v2.1.0
July 24, 2019 -
v2.0.4 Changes
April 04, 2019VS 15.8
๐ Release 2.0.2 attempted to integrate with breaking changes in Visual Studio 15.8. It failed, however, to properly deal with the following combination:
- โ Test assembly targets Full .NET Framework
- ๐ Enabling the new option Tools \ Options \ Tests \ "For improved performance, only use test adapters in test assembly folder..."
โ In this scenario, Test Explorer would fail to locate a dependency (Mono.Cecil) causing those tests to disappear from Test Explorer.
๐ With this release, Tests Explorer is expected to behave well regardless of the new Tools \ Options \ Tests setting.
โ Handling Stale Test Discovery Information
โ Because test runners like Test Explorer can request specific tests to run using stale discovery data (such as selecting a test to run which has been renamed but not yet recompiled), we now take care to only execute requested tests which in fact exist.
โ Test Exception Handling
โ We simplified the way that test exceptions are captured and propagated while preserving original stack traces.
โ For async tests, this means favoring task.GetAwaiter().GetResult() over task.Wait(), simplifying our implementation and providing a more readable stack trace.
We leverage ExceptionDispatchInfo.Throw(), though we take care to omit the portion of the resulting stack trace that verbosely describes Fixie's own calling of that method.
-
v2.0.3 Changes
December 04, 2018๐ Bugs Fixed
- When formatting output under TeamCity, ensure all non-ASCII characters are properly escaped.
- โ
When asynchronous F# test cases return the F#-specific
Async<'T>
type, ensure that execution has completed before determining the case's result. - โ
Ensure that execution of any asynchronous test case completes before determining the case's result, whether or not the
async
keyword is present, even when theTask
object is returned from a method declared withobject
as the return type. - โ
Asynchronous test cases which return the
null
task always pass, as there is no more work to perform. - โ
Asynchronous test cases fail with a clear explanation, instead of blocking indefinitely, when the
Task
returned was never started.
Huge thanks to @petejohanson!
-
v2.0.2 Changes
September 03, 2018โ Visual Studio 15.8 included an intentional breaking change to the way Test Explorer discovers third party "test adapters" like Fixie.VisualStudio.TestAdapter.dll.
Historically, Test Explorer would search for .NET Core adapters only in the build output folder, while it would search for .NET Framework adapters in both the build output folder and the referenced NuGet packages. When Fixie 2.0.0 was released, we took advantage of the NuGet package search in order to avoid having to wastefully copy the adapter DLL to the build outpuf folder for .NET Framework builds.
๐ Visual Studio 15.8 includes a breaking change in the interest of performance. The search no longer considers NuGet package contents when discovering test adapters. This release fixes Test Explorer integration by including the same DLL copy for .NET Framework projects as we've been doing for .NET Core projects.
โ As a side effect,
dotnet test
integration is likewise improved, though we still recommend usingdotnet fixie
instead.