This release of NUnit finally drops support for .NET 2.0. If your application still targets .NET 2.0, your tests will need to target at least .NET 3.5. Microsoft ended support for .NET 2.0 on July 12, 2011. Microsoft recommends that everyone migrate to at least .NET Framework 3.5 SP1 for security and performance fixes.
This release dramatically improves NUnit support for async tests including returning ValueTask and custom tasks from tests, improved handling of SynchronizationContexts and better exception handling.
The .NET Standard 2.0 version of NUnit continues to gain more functionality that is found in the .NET 4.5 version of the framework like setting the ApartmentState and enabling Timeout on tests.
NUnit 3.11
More informative assertion messages
PlatformAttribute is available on .NET Standard 2.0 and now detects .NET Core
ValuesAttribute now works with nullable types
Async tests detecting and running Windows Forms or WPF message pumps rather than deadlocking
Support for UWP 10.0 is back via .NET Standard 1.4
NUnit 3.10.1
Added a namespace to the props file included in the NuGet package to make it compatible with versions of Visual Studio prior to VS 2017.
NUnit 3.10
This release adds a .NET Standard 2.0 version of the framework which re-enables most of the features that have been missing in our earlier .NET Standard builds like parallelism, timeouts, directory and path based asserts, etc. It also contains numerous bug fixes and smaller enhancements. We've improved our XML docs, fixed performance issues and added more detail to Multiple Asserts.
This release also contains source-indexed PDB files allowing developers to debug into the NUnit Framework. This allows you to track down errors or see how the framework works.
In order to support the .NET Standard 2.0 version, the NUnit project switched to the new CSPROJ format and now requires Visual Studio 2017 to compile. This only effects people contributing to the project. NUnit still supports building and compiling your tests in older .NET IDEs and NUnit still supports older versions of the .NET Framework back to 2.0. For contributors, NUnit can now compile all supported targets on Windows, Linux and Mac using the Cake command line build.
NUnit 3.9
This release addresses numerous parallelization issues that were introduced in 3.8 when method level parallelization was added. Most of the parallelization issues resolved were tests never completing when using some combinations of parallel tests and ApartmentState not being properly applied to tests in all cases.
NUnit 3.8.1
This release fixes two critical regressions in the 3.8 release. The first caused the console runner to crash if you are using test parameters. The second issue caused collection constraints checking for multiple items in a collection to fail.
Issues Resolved
2386 Contains.Item() fails for collections in NUnit 3.8
2390 Missing value attribute in test parameters setting causes NullReferenceException in console
NUnit 3.8
This release removes several methods and attributes that were marked obsolete in the
original 3.0 release. Support for iOS and Android has been improved.
An issue that caused unit tests to run slower was addressed as was a bug that prevented
the use of Assert.Multiple in async code.
The Order attribute can now also be applied to the class level to set the order
that test fixtures will be run.
This release of NUnit finally drops support for .NET 2.0. If your application still
targets .NET 2.0, your tests will need to target at least .NET 3.5. Microsoft ended
support for .NET 2.0 on July 12, 2011. Microsoft recommends that everyone migrate
to at least .NET Framework 3.5 SP1 for security and performance fixes.
This release dramatically improves NUnit support for async tests including returning
ValueTask and custom tasks from tests, improved handling of SynchronizationContexts
and better exception handling.
The .NET Standard 2.0 version of NUnit continues to gain more functionality that
is found in the .NET 4.5 version of the framework like setting the ApartmentState
and enabling Timeout on tests.
Issues Resolved
474 TypeHelperTests.cs is orphaned
999 Support multiple TestOf attributes per test
1638 TimeoutAttribute not available when targeting netcoreapp framework
2168 ThrowsAsync reports OperationCanceledException as TaskCanceledException
2194 How to use Contains.Substring with And
2286 Add support for custom Task (i.e. ValueTask)
2579 AppVeyor Test Failures under .NET 3.5
2614 TestExecutionContext.CurrentContext is saved in Remoting CallContext between test runs
2696 Getting WorkerId fails in debug
2772 Random failing of parallel test run: Unhandled Exception: System.InvalidOperationException: Stack empty.
2975 ComparisonConstraints are allocating string on construction
3014 Timeout failures on MacOS
3023 NUnit runner fails when test method returns ValueTask<>
3035 Apartment state can't be used for .NET Standard 2.0 tests
3036 Apartment state can't be used for .NET Standard 2.0 tests
3038 TestName in TestCase attribute not validated to be not empty
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Note: This repo was added to Dependabot recently, so you'll receive a maximum of 5 PRs for your first few update runs. Once an update run creates fewer than 5 PRs we'll remove that limit.
You can always request more updates by clicking Bump now in your Dependabot dashboard.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language
- `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme
Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):
- Update frequency (including time of day and day of week)
- Pull request limits (per update run and/or open at any time)
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)
Bumps NUnit from 2.6.3 to 3.12.0.
Release notes
Sourced from NUnit's releases.
Changelog
Sourced from NUnit's changelog.
Commits
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Note: This repo was added to Dependabot recently, so you'll receive a maximum of 5 PRs for your first few update runs. Once an update run creates fewer than 5 PRs we'll remove that limit.
You can always request more updates by clicking
Bump now
in your Dependabot dashboard.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language - `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com): - Update frequency (including time of day and day of week) - Pull request limits (per update run and/or open at any time) - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired)