1### NUnit 3.12 - May 14, 2019 2 3This release of NUnit finally drops support for .NET 2.0. If your application still 4targets .NET 2.0, your tests will need to target at least .NET 3.5. Microsoft ended 5support for .NET 2.0 on July 12, 2011. Microsoft recommends that everyone migrate 6to at least .NET Framework 3.5 SP1 for security and performance fixes. 7 8This release dramatically improves NUnit support for async tests including returning 9ValueTask and custom tasks from tests, improved handling of SynchronizationContexts 10and better exception handling. 11 12The .NET Standard 2.0 version of NUnit continues to gain more functionality that 13is found in the .NET 4.5 version of the framework like setting the ApartmentState 14and enabling Timeout on tests. 15 16#### Issues Resolved 17 18 * 474 TypeHelperTests.cs is orphaned 19 * 999 Support multiple TestOf attributes per test 20 * 1638 TimeoutAttribute not available when targeting netcoreapp framework 21 * 2168 ThrowsAsync reports OperationCanceledException as TaskCanceledException 22 * 2194 How to use `Contains.Substring` with `And` 23 * 2286 Add support for custom Task (i.e. ValueTask) 24 * 2579 AppVeyor Test Failures under .NET 3.5 25 * 2614 TestExecutionContext.CurrentContext is saved in Remoting CallContext between test runs 26 * 2696 Getting WorkerId fails in debug 27 * 2772 Random failing of parallel test run: Unhandled Exception: System.InvalidOperationException: Stack empty. 28 * 2975 ComparisonConstraints are allocating string on construction 29 * 3014 Timeout failures on MacOS 30 * 3023 NUnit runner fails when test method returns ValueTask<> 31 * 3035 Apartment state can't be used for .NET Standard 2.0 tests 32 * 3036 Apartment state can't be used for .NET Standard 2.0 tests 33 * 3038 TestName in TestCase attribute not validated to be not empty 34 * 3042 RequiresThreadAttribute allows ApartmentState.Unknown, unlike ApartmentAttribute 35 * 3048 Add .idea folder to .gitignore 36 * 3053 Conversion from TestCase string parameter to DateTimeOffset 37 * 3059 Constraint Throws.Exception does not work with async return value 38 * 3068 First Chance Exception in RuntimeFramework 39 * 3070 End support for .NET Framework 2.0 (released in 2005) 40 * 3073 CollectionAssert.AreEquivalent fails for ValueTuple Wrapped Dictionary 41 * 3079 Regression from 3.10 to 3.11: Range in bytes 42 * 3082 Is.Ordered.By 43 * 3085 XML Test-Suite Assembly does not contain DLL path anymore 44 * 3089 Remove outdated comment 45 * 3093 Tests having TaskLike objects as their return type throws Exception 46 * 3094 Bad error message if collections have different types 47 * 3104 Removed NET20 compile output 48 * 3105 Add tests for use of ApartmentState.Unknown in RequiresThreadAttribute 49 * 3107 Declare class in Program.cs provided with NUnitLite Nuget package static 50 * 3109 Azure DevOps build fails in Save package artifacts 51 * 3124 Switch copyright notice 52 * 3128 Correct documentation on ParallelScope 53 * 3137 Fix doc-comments in NUnitTestAssemblyRunner 54 * 3138 Assert.Ignore breaks when a Task is returned w/o using async/await 55 * 3139 Add Azure pipelines badge to frontpage 56 * 3144 Retry attribute should not derive from PropertyAttribute 57 * 3145 Capture additional exception details in the test output 58 * 3156 UnexpectedExceptionTests should tolerate Mono on Azure DevOps Ubuntu 59 * 3159 Make tests more tolerant 60 * 3161 https url repo 61 * 3166 Allow static SetUpFixture classes 62 * 3171 Incorrect type for Test Fixtures when using running explore with a filter 63 * 3175 Improve user-facing messages 64 * 3181 Template Based Test Naming - Incorrect truncation for individual arguments 65 * 3186 Fix licenseUrl element in nuspec, will be deprecated 66 * 3193 Cake Build Fails with Visual Studio 2019 67 * 3195 Drop or at least make Travis not required? 68 * 3231 Breaking change in filter functionality between framework 2.7 and 3.11 69 * 3209 Test fail when posting to SynchronizationContext.Current 70 * 3211 Fix logging 71 * 3218 Remove todos from the code base 72 * 3222 Our build script tests hang when run with Mono on Windows 73 * 3233 AndConstraint should write additional information from failed constraint 74 75### NUnit 3.11 - October 6, 2018 76 77 * More informative assertion messages 78 * PlatformAttribute is available on .NET Standard and now detects .NET Core 79 * ValuesAttribute now works with nullable types 80 * Async tests detecting and running Windows Forms or WPF message pumps rather than deadlocking 81 * Support for UWP 10.0 is back via .NET Standard 1.4 82 83#### Issues Resolved 84 85 * 352 Test with infinite loop in TearDown cannot be aborted 86 * 452 Deprecate the existing Chocolatey framework package 87 * 660 Order dependence of And and Or constraints should be documented 88 * 1200 async test + Apartment(ApartmentState.STA) => await not returning on STA thread 89 * 2123 Task.Run inside a test will result in deadlock if a control was created previously 90 * 2146 Assert.That with a Throws constraint does not provide as much info as Assert.Throws 91 * 2427 PropertyConstraint throws away the more helpful message in the base constraint result 92 * 2432 Ability to exclude/include the platform .NET Core 93 * 2450 NullReferenceException in ExceptionHelper.BuildMessage on Mono 94 * 2536 SetArgDisplayNames for TestCaseData and TestFixtureData 95 * 2611 Enable .NET Standard 1.6 tests on non-Windows 96 * 2693 Ensure that resharper settings are consistent with the editorconfig configuration 97 * 2757 Broken `char` comparison in v3.7 and higher 98 * 2759 Test fails with "No arguments were provided" error when no values returned from IParameterDataSource 99 * 2761 Infinite loop in nunit 3.9 100 * 2781 Fixed precompiler typo 101 * 2786 Timeout value not resetting on Retry of failed test 102 * 2790 Removing ITypeInfo abstraction 103 * 2798 [Request] Show actual count value when test fail on Has.Exactly(x).Items 104 * 2814 Remove public marker types 105 * 2819 Only run AppVeyor PR build against open PRs 106 * 2821 Save and restore the SynchronizationContext before and after each test case 107 * 2823 SetUp failed for test fixture - Array was not a one-dimensional array. Issue seems related to byte[,] method parameters 108 * 2829 Obsoletion warning for DataAttribute 109 * 2831 Regular "BusyExecIdle after 200 milliseconds delay" CI failures 110 * 2833 Use longer BusyExecIdle to avoid CI failures 111 * 2836 NUnit.Framework.Does cannot be extended 112 * 2837 DictionaryContainsKeyConstraint behaviour is inconstant with Dictionary.ContainsKey when the dictionary uses a custom Comparer 113 * 2842 Supporting inheritance of Assert and related classes 114 * 2854 Has.All.../Has.None... - show non-matching items in error message 115 * 2863 Make tests robust without depending on the order of attributes 116 * 2867 Skip executing TestCaseSources for tests which are not included in the filter 117 * 2876 Implement Discovery-time filtering for NUnitLite 118 * 2883 Our public ConcurrentQueue causes type conflicts 119 * 2885 Copy/paste error in Assert.That documentation 120 * 2887 NETStandard 1.3 support dropped in NUnit 3.10 121 * 2896 Some tests are silently skipped on netstandard1.x since #2796 122 * 2898 AssemblyPath contains invalid charaters 123 * 2901 Values attribute support for nullable bool and enum types 124 * 2923 Update outdated CategoryAttribute xmldoc 125 * 2928 Improve error message on EmptyConstraint 126 * 2929 Added NUnit XML schemas 127 * 2940 Increase StackTracesAreFiltered amount to 5 128 * 2955 Potential threading issue in IsolatedContext 129 * 2965 NuGet Package : Add `repository` metadata. 130 * 2970 InvalidCastException @ NUnit.Framework.TestFixtureSourceAttribute.BuildFrom 131 * 2979 Warn.If in Assert.Multiple 132 * 2994 Error in .NET Standard 1.4 DictionaryContainsKeyConstraint MetadataToken compatibility methods 133 * 2996 Remove unused enum 134 * 3009 Fix failing CI Builds by upgrading to NUnit Console 3.9.0 135 * 3020 Upgrade nunit-vs-adapter to 3.10 for nUnit 3.11 136 * 3024 Unable to add `.IgnoreCase` modifier to an `AnyOf` constraint in collection constraints 137 * 3032 APIs to restore before 3.11 138 139### NUnit 3.10.1 - March 12, 2018 140 141Added a namespace to the props file included in the NuGet package to make it 142compatible with versions of Visual Studio prior to VS 2017. 143 144### NUnit 3.10 - March 12, 2018 145 146This release adds a .NET Standard 2.0 version of the framework which re-enables 147most of the features that have been missing in our earlier .NET Standard builds 148like parallelism, timeouts, directory and path based asserts, etc. It also contains 149numerous bug fixes and smaller enhancements. We've improved our XML docs, 150fixed performance issues and added more detail to Multiple Asserts. 151 152This release also contains source-indexed PDB files allowing developers to debug 153into the NUnit Framework. This allows you to track down errors or see how the 154framework works. 155 156In order to support the .NET Standard 2.0 version, the NUnit project switched to 157the new CSPROJ format and now requires Visual Studio 2017 to compile. This only 158effects people contributing to the project. NUnit still supports building and 159compiling your tests in older .NET IDEs and NUnit still supports older versions 160of the .NET Framework back to 2.0. For contributors, NUnit can now compile all 161supported targets on Windows, Linux and Mac using the Cake command line build. 162 163#### Issues Resolved 164 165 * 1373 Setting with a null value 166 * 1382 Use array argument contents in name of parameterized tests rather than just array type. 167 * 1578 TestContext.CurrentTest exposes too much internal info 168 * 1678 Result Message: OneTimeSetUp: Category name must not contain ',', '!', '+' or '-' 169 * 1944 Removing Compact Framework workarounds 170 * 1958 System.Reflection.TargetInvocationException after run finished 171 * 2033 Nameof refactor 172 * 2202 Best practices for XML doc comments 173 * 2325 Retry attribute doesn't retry the test. 174 * 2331 Repo does not build in VS without running `build -t build` first 175 * 2405 Improve PropertyConstraint error output 176 * 2421 Publishing symbols with releases 177 * 2494 CollectionAssert.AllItemsAreUnique() very slow 178 * 2515 Retarget Solution to use the New CSPROJ Format 179 * 2518 Bug in CollectionAssert.AreEqual for ValueTuples. 180 * 2530 Running tests on main thread. Revisiting #2483 181 * 2542 NUnit does not support parallelism on .NET Core 2.0 182 * 2555 CI timeout: NUnit.Framework.Assertions.CollectionAssertTest.PerformanceTests 183 * 2564 Add minClientVersion to .nuspec files 184 * 2566 Refactor `SimpleEnumerableWithIEquatable` test object 185 * 2577 Warning in TearDown is inconsistent with Assertion failure 186 * 2580 Remove unused defines 187 * 2591 NUnitEqualityComparer.Default should be replaced with new NUnitEqualityComparer() 188 * 2592 Add .props with ProjectCapability to suppress test project service GUID item 189 * 2608 Culture differences on .NET Core on non-Windows causes test failures 190 * 2622 Fix flakey test 191 * 2624 Prevent emails for successful builds on Travis 192 * 2626 SetUp/TearDown methods are invoked multiple times before/after test in .NET Standard targeted projects 193 * 2627 Breaking change in CollectionAssert.AllItemsAreUnique with NUnit 3.9 194 * 2628 Error during installing tools when running build script 195 * 2630 Framework throws NullReferenceException if test parameter is marked with [Values(null)] 196 * 2632 Parallel tests are loading 100% CPU when nested SetUpFixture exists 197 * 2639 ValuesAttribute causes ExpectedResult to have no effect 198 * 2647 Add Current Attempt indicator in TestContext for use with RetryAttribute 199 * 2654 Address feedback from @oznetmaster 200 * 2656 NuGet package links to outdated license 201 * 2659 Naming Errors 202 * 2662 NullReferenceException after parallel tests have finished executing 203 * 2663 Building NUnit .NET 4.5 in VS2017 fails 204 * 2669 Removed vestigial build script helper method 205 * 2670 Invalid assemblies no longer give an error message 206 * 2671 Ensure that FailureSite.Child is used where appropriate. 207 * 2685 Remove Rebracer file 208 * 2688 Assert.Throws swallows console output 209 * 2695 MultipleAssertException doesn't provide proper details on failures 210 * 2698 Syntax suggestions errors as warnings 211 * 2704 Add Constraint to test whether actual item is contained in expected collection 212 * 2711 NUnitLite: Add support for --nocolor option 213 * 2714 AnyOfConstraint enumerates multiple times 214 * 2725 Enable 'strict' compilation flag 215 * 2726 Replace the ConcurrentQueue and SpinWait compatibility classes 216 * 2727 Avoid treating warnings as errors inside the IDE 217 * 2734 TestCaseAttribute: ExpectedResult should support same value conversion as normal method arguments 218 * 2742 FailureSite not correctly set on containing suites when tests are ignored. 219 * 2749 Update Travis SDK versions 220 221### NUnit 3.9 - November 10, 2017 222 223This release addresses numerous parallelization issues that were introduced in 3.8 224when method level parallelization was added. Most of the parallelization issues 225resolved were tests never completing when using some combinations of parallel tests 226and `ApartmentState` not being properly applied to tests in all cases. 227 228#### Issues Resolved 229 230 * 893 Inconsistent Tuple behavior. 231 * 1239 NUnit3 sometimes hangs if SetUpFixtures are run in parallel 232 * 1346 NullReferenceException when [TestFixtureSource] refers to data in a generic class. 233 * 1473 Allow Is.Ordered to Compare Null Values 234 * 1899 Constraint Throws.Exception does not catch exception with async lambdas 235 * 1905 SetupFixture without namespace will make assembly-level Parallelizable attribute useless 236 * 2091 When a native exception of corrupted state is thrown, nunit test thread crashes and the nunit-console process hangs 237 * 2102 NUnitLite incorrectly reports Win 10 OS name 238 * 2271 When CollectionAssert.AreEqual do compare each element, it will ignore the IEquatable of the element too 239 * 2289 ResolveTypeNameDifference does not handle generic types well 240 * 2311 Resolve test projects' namespace situation 241 * 2319 Add .editorconfig to set file encodings so that people don't have to think about it 242 * 2364 Parallelizable attribute not invalidating invalid parallel scope combinations 243 * 2372 Create testing for compounded ConstraintFilters 244 * 2388 Parallelization causes test cases to stop respecting fixture's apartment state 245 * 2395 NUnit 3.8+ does not finish running tests 246 * 2398 NUnit CI spurious failures, NUnit.Framework.Internal.ThreadUtilityTests.Kill 247 * 2402 --labels=All doesn't show anything in console output executing NUnitLite Console Runner 248 * 2406 Summary descriptions replaced by more detailed ones 249 * 2411 And constraint on Has.Member throws 250 * 2412 Using fluent syntax unintentionally removed in 3.8 251 * 2418 Support equality comparison delegate 252 * 2422 Has.Property causes AmbiguousMatchException for shadowing properties 253 * 2425 XML doc typo fix 254 * 2426 Regression in 3.8.1: ApartmentAttribute no longer works when applied to an assembly 255 * 2428 Fix NullReferenceExceptions caused by WorkItemQueue not being thread-safe 256 * 2429 Stack trace shown for Assert.Warn 257 * 2438 [Parallelizable] hangs after a few tests 258 * 2441 Allows to override load-time/execution-time interfaces in built-in tests attributes 259 * 2446 CI failure in mono Warning tests 260 * 2448 Inherited Test SetUp, TearDown, etc. are not executed in .NET Core if they are not public 261 * 2451 Compile RegEx to improve performance 262 * 2454 SetUpFixture not respecting NonParallelizable tag on TestFixtures. 263 * 2459 [Parallelizable(ParallelScope.Children)] Unable to finish tests 264 * 2465 Possible wrong properties are returned by reflection in ReflectionExtensions.cs 265 * 2467 Test execution hangs when using [SetUpFixture] with NUnit 3.8.x 266 * 2469 Allow RangeAttribute to be specified multiple times for the same argument 267 * 2471 Parametrized testcases not running in parallel 268 * 2475 Framework incorrectly identifies Win 10 in xml results 269 * 2478 Attributes on SetUpFixture are not applied 270 * 2486 Message when asserting null with Is.EquivalentTo could be more helpful 271 * 2497 Use ConstraintUtils.RequireActual through out the codebase 272 * 2504 Support changing test display name on TestFixtureData 273 * 2508 Correct divergence from shadowed Is / Has members. 274 * 2516 When test writes something to the stdErr there is no guaranteed way to link a test-output event to a target test using ITestEventListener 275 * 2525 Remove unwanted space from comment 276 * 2526 SerializationException in low trust floating point equality test 277 * 2533 Matches<T>(Predicate<T>) throws ArgumentException or Fails when actual is null 278 * 2534 SetUpFixture causes NUnit to lock with Apartment( STA ) 279 * 2551 CollectionItemsEqualConstraint is missing Using(Func<T, T, bool>) 280 * 2554 Made TestFixtureData.SetName internal for 3.9 281 282### NUnit 3.8.1 - August 28, 2017 283 284This release fixes two critical regressions in the 3.8 release. The first caused the console 285runner to crash if you are using test parameters. The second issue caused collection 286constraints checking for multiple items in a collection to fail. 287 288#### Issues Resolved 289 290 * 2386 Contains.Item() fails for collections in NUnit 3.8 291 * 2390 Missing value attribute in test parameters setting causes NullReferenceException in console 292 293### NUnit 3.8 - August 27, 2017 294 295This release removes several methods and attributes that were marked obsolete in the 296original 3.0 release. Support for iOS and Android has been improved. 297 298An issue that caused unit tests to run slower was addressed as was a bug that prevented 299the use of Assert.Multiple in async code. 300 301The Order attribute can now also be applied to the class level to set the order 302that test fixtures will be run. 303 304#### Issues Resolved 305 306 * 345 Order of Fixture Execution 307 * 1151 Include differences in output for Is.EquivalentTo 308 * 1324 Remove CollectionContainsConstraint 309 * 1670 Attaching files to the test result 310 * 1674 InRange-Constraint must work with object 311 * 1851 TestCaseSource unable to pass one element byte array 312 * 1996 Timeout does not work if native code is running at the time 313 * 2004 Has.One as synonym for Has.Exactly(1).Items 314 * 2062 TestCaseSource attribute causes test to pass when source is not defined 315 * 2144 Allow option on RandomAttribute to produce distinct values 316 * 2179 Some NUnit project's tests fail on systems with CultureInfo other than en 317 * 2195 Contains.Substring with custom StringComparison 318 * 2196 Expose ParallelizableAttribute (and other attribute) constructor arguments as properties 319 * 2201 Invalid platform name passed to PlatformAttribute should mark test NotRunnable 320 * 2208 StackFIlter trims leading spaces from each line 321 * 2213 SetCultureAttribute: CultureInfo ctor should use default culture settings 322 * 2217 Console runner performance varies wildly depending on environmental characteristics 323 * 2219 Remove Obsolete Attributes 324 * 2225 OneTimeTearDown and Dispose Ordering 325 * 2237 System.Runtime.Loader not available for iOS/Android 326 * 2242 Running tests directly should never surface a NullReferenceException 327 * 2244 Add KeyValuePair<TKey, TValue> to the default formatters 328 * 2251 Randomizer.NextGuid() 329 * 2253 Parallelizable(ParallelScope.Fixtures) doesn't work on a TestFixture 330 * 2254 EqualTo on ValueTuple with Nullable unexpected 331 * 2261 When an assembly is marked with ParallelScope.None and there are Parallelizable tests NUnit hangs 332 * 2269 Parallelizable and NonParallelizable attributes on setup and teardown silently ignored 333 * 2276 Intermittent test failures in Travic CI: TestContextTests 334 * 2281 Add type constraint for Throws and any method requiring Exception 335 * 2288 Killing thread cancels test run 336 * 2292 Is.Ordered.By() with a field throws NullReferenceException 337 * 2298 Write TestParametersDictionary to xml result file in readable format 338 * 2299 NUnitLite NuGet package no longer installs NUnit NuGet package 339 * 2304 Revert accidental doc removal 340 * 2305 Correct misprint ".con" -> ".com" 341 * 2312 Prevent crash on invalid --result parsing in NUnitLite 342 * 2313 Incorrect xmldoc on RetryAttribute 343 * 2332 Update build script to use NUnitConsoleRunner v3.7.0 344 * 2335 Execute OneTimeTearDown as early as possible when running fixtures in parallel 345 * 2342 Remove deprecated Is.String* Constraints 346 * 2348 Can't use Assert.Multiple with async code 347 * 2353 Provide additional Result information through TestContext 348 * 2358 Get framework to build under Mono 5.0 349 * 2360 Obsolete CollectionContainsConstraint Constructors 350 * 2361 NUnit Parallelizable and OneTimeSetUp with no namespace results in single-threaded test execution 351 * 2370 TestCaseAttribute can't convert int to nullable long 352 353### NUnit 3.7.1 - June 6, 2017 354 355This is a hotfix release that addresses occasional hangs when using test parallelization 356and fixes crashes in NCrunch prior to version 3.9. 357 358#### Issues Resolved 359 360 * 2205 Ncrunch: System.Xml.XmlException: Root element is missing, when adding NUnit 3.7.0 361 * 2209 NUnit occasionally hangs when parallelizable TestFixture has OneTimeSetUp and OneTimeTearDown 362 363### NUnit 3.7 - May 29, 2017 364 365This release of NUnit expands on parallel test execution to allow test methods to 366be run in parallel. Please see the [Parallelizable Attribute](https://github.com/nunit/docs/wiki/Parallelizable-Attribute) 367for more information. 368 369NUnit 3.7 also drops the Portable build of the framework and replaces it with a 370.NET Standard 1.3 version to compliment the .NET Standard 1.6 version. This change 371enables several constraints and other features in the .NET Standard builds that 372weren't available in portable like Path and Directory based asserts. 373 374The AssertionHelper class has been deprecated because it is seldom used and has 375not received any of the updates that Asserts and Constraints receive. If your code 376is using the AssertionHelper class, we recommend that you migrate your asserts. 377 378#### Issues Resolved 379 380 * 164 Run test methods within a fixture in parallel 381 * 391 Multiple Assertions 382 * 652 Add ability to execute test actions before SetUp or OneTimeSetUp 383 * 1000 Support multiple Author attributes per test 384 * 1096 Treat OneTimeSetup and OneTimeTearDown as separate work items 385 * 1143 NUnitLite - Explore flag does not apply where filter to output 386 * 1238 Feature request: Print LoaderExceptions when fixture loading fails 387 * 1363 Make Timeouts work without running test on its own thread 388 * 1474 Several SetUpFixtures at the same level may be active at the same time 389 * 1819 TestContext.Progress.Write writes new line 390 * 1830 Add --labels switch changes to nunilite and nunitlite tests 391 * 1859 ConcurrentQueue is duplicate with System.Threading.dll package 392 * 1877 Resolve differences between NUnit Console and NUnitLite implementations of @filename 393 * 1885 Test parameter containing a semicolon 394 * 1896 Test has passed however Reason with an empty message is printed in the xml 395 * 1918 Changing DefaultFloatingPointTolerance breaks tests running in parallel 396 * 1932 NUnit Warn class should be removed from stack trace by filter 397 * 1934 NullReferenceException when null arguments are used in TestFixtureAttribute 398 * 1952 TestContext.Out null when used in task with .NET Core 399 * 1963 Investigate removing SpecialValue 400 * 1965 TestContext does not flow in async method 401 * 1971 Switch CHANGES.txt to Markdown 402 * 1973 Implemented TestExecutionContext to use AsyncLocal<> for NETSTANDARD1_6 403 * 1975 TestFixtureSource doesn't work with a class that has no namespace 404 * 1983 Add missing ConstraintExpression.Contain overload 405 * 1990 Add namespace filter 406 * 1997 Remove unused --verbose and --full command line options 407 * 1999 Author Tests assume ICustomAttributeProvider.GetCustomAttributes return order is defined 408 * 2003 Better user info about ParallelizableAttribute and ParallelScope 409 * 2005 Exclude empty failure messages from results xml 410 * 2007 3.6 Multiple assertion backwards compatibility 411 * 2010 Add DelayedConstraint in NetStandard 1.6 build 412 * 2020 Better message when timeout fails 413 * 2023 Ability to abort threads running a message pump 414 * 2025 NullReferenceException using Is.EqualTo on two unequal strings 415 * 2030 Add method to mark tests as invalid with a reason 416 * 2031 Limit Language level to C#6 417 * 2034 Remove silverlight project - no longer used 418 * 2035 NullReferenceException inside failing Assert.That call 419 * 2040 Cannot catch AssertionException 420 * 2045 NUnitlite-runner crashes if no file is provided 421 * 2050 Creation of TestExecutionContext should be explicit 422 * 2052 NullReferenceException with TestCaseSource if a property has no setter 423 * 2061 TestContext.WorkDirectory not initialized during build process 424 * 2079 Make TestMethod.Arguments public or otherwise accessible (e.g. TestContext) 425 * 2080 Allow comments in @FILE files 426 * 2087 Enhance error message: Test is not runnable in single-threaded context. Timeout 427 * 2092 Convert Portable library to .NET Standard 1.3 428 * 2095 Extend use of tolerance to ComparisonConstraints 429 * 2099 Include type in start-suite/start-test report elements 430 * 2110 NullReferenceException when getting TestDirectory from TestContext 431 * 2115 Mark AssertionHelper as Obsolete 432 * 2121 Chained PropertyConstraint constraints report incorrect ActualValue 433 * 2131 Remove "Version 3" suffix from NUnitLite NuGet Package 434 * 2132 TestFixtureTests.CapturesArgumentsForConstructorWithMultipleArgsSupplied assumes order of custom attributes 435 * 2143 Non-parallel fixture with parallel children runs in parallel with other fixtures 436 * 2147 Test Assembly using NUnitLite & Nunit 3.6.1 hangs under .NET Core when `--timeout` is supplied on command line 437 * 2150 Add portable-slow-tests to Cake file 438 * 2152 Allow attaching files to TestResults 439 * 2154 Fix execution of non-parallel test fixtures 440 * 2157 Getting WorkerId inside Assert.Throws / DoesNotThrow returns null instead of previous non-null value 441 * 2158 Update SetupFixtureAttribute XML Docs 442 * 2159 Prevent crash in .NET standard with log file path 443 * 2165 Trying to install NUnit 3.6.1 on .NET Framework asks for download of 20 more packages 444 * 2169 Incorrect xmldocs for SetUpAttribute 445 * 2170 Cake build fails if only Visual Studio 2017 installed 446 * 2173 Remove PreTestAttribute and PostTestAttribute 447 * 2186 Replace special characters as part of converting branch names to package versions 448 * 2191 System.Reflection.TargetInvocationException with nunit3-console --debug on Mono 449 450### NUnit 3.6.1 - February 26, 2017 451 452This is a hotfix release of the framework that addresses critical issues found in 453the 3.6 release. 454 455#### Issues Resolved 456 457 * 1962 A Theory with no data passes 458 * 1986 NUnitLite ignores --workers option 459 * 1994 NUnitLite runner crashing when --trace is specified 460 * 2017 Two NUnit project's tests fail on systems with comma decimal mark settings 461 * 2043 Regression in 3.6.0 when catching AssertionException 462 463### NUnit 3.6 - January 9, 2017 464 465This release of the framework no longer includes builds for Compact Framework or 466for SilverLight, but adds a .NET Standard 1.6 build. If anyone still using 467Compact Framework or SilverLight and would like to continue development on those 468versions of the framework, please contact the NUnit team. 469 470#### Framework 471 472 * .NET Standard 1.6 is now supported 473 * Adds support for Multiple Assert blocks 474 * Added the --params option to NUnitLite 475 * Theories now support Nullable enums 476 * Improved assert error messages to help differentiate differences in values 477 * Added warnings with Warn.If(), Warn.Unless() and Assert.Warn() 478 * Enabled Path, File and Directory Asserts/Contraints for .NET Core testing 479 * Added NonTestAssemblyAttribute for use by third-party developers to indicate 480 that their assemblies reference the NUnit framework, but do not contain tests 481 482#### Issues Resolved 483 484 * 406 Warning-level Assertions 485 * 890 Allow file references anywhere in the command line. 486 * 1380 Appveyor Failures when branch name is too long 487 * 1589 Split the nunit repository into multiple repositories 488 * 1599 Move Compact Framework to separate project 489 * 1601 Move Silverlight to a separate project 490 * 1609 Upgrade Cake build to latest version 491 * 1661 Create .NET Standard Framework Build 492 * 1668 Need implementation-independent way to test number of items in a collection 493 * 1743 Provide multiple results for a test case in the XML output 494 * 1758 No direct inverse for Contains.Key 495 * 1765 TestCaseSourceAttribute constructor for method with parameters 496 * 1802 Design Multiple Assert syntax as seen by users 497 * 1808 Disambiguate error messages from EqualConstraint 498 * 1811 Build.ps1 fails if spaces in path 499 * 1823 Remove engine nuspecs and old global.json 500 * 1827 Remove unused repository paths from repositories.config 501 * 1828 Add Retry for failed tests only 502 * 1829 NUnitLite accepts --params option but does not make any use of it. 503 * 1836 Support nullable enums in Theories 504 * 1837 [Request] AfterContraint to support more readable usage 505 * 1840 Remove SL and CF #Defined source 506 * 1866 [Request] More readable way to set polling interval in After constraint 507 * 1870 EqualConstraint result failure message for DateTime doesn't show sufficient resolution 508 * 1872 Parameterized method being called with no parameter 509 * 1876 What should we do about Env.cs 510 * 1880 AttributeUsage for various Attributes 511 * 1889 Modify nunitlite to display multiple assert information 512 * 1891 TestContext.Progress and TestContext.Error silently drop text that is not properly XML encoded 513 * 1901 Make nunitlite-runner Prefer32Bit option consistent across Debug/Release 514 * 1904 Add .NET Standard 1.6 Dependencies to the Nuspec Files 515 * 1907 Handle early termination of multiple assert block 516 * 1911 Changing misleading comment that implies that every `ICollection<T>` is a list 517 * 1912 Add new warning status and result state 518 * 1913 Report Warnings in NUnitLite 519 * 1914 Extra AssertionResult entries in TestResults 520 * 1915 Enable Path, File and Directory Assert/Constraints in the .NET Standard Build 521 * 1917 Use of IsolatedContext breaks tests in user-created AppDomain 522 * 1924 Run tests using the NUnit Console Runner 523 * 1929 Rename zip and remove source zip 524 * 1933 Tests should pass if test case source provides 0 test cases 525 * 1941 Use dictionary-based property for test run parameters 526 * 1945 Use high-quality icon for nuspecs 527 * 1947 Add NonTestAssemblyAttribute 528 * 1954 Change Error Message for Assert.Equals 529 * 1960 Typo fixes 530 * 1966 Xamarin Runner cannot reference NUnit NuGet Package 531 532### NUnit 3.5 - October 3, 2016 533 534This is the first version of NUnit where the framework will be released separately from the 535console runner, engine and other extensions. From this point forward, the NUnit Framework will be 536released on its own schedule that is not bound to that of any other NUnit project and version numbers 537may diverge over time. 538 539This is also the first release where the NUnit Framework will not be included in the installer. Only 540the console runner, engine and extensions will be available as an MSI installer. We recommend that you 541use the NUnit NuGet packages for the framework, but a ZIP file with the binaries will also be available. 542 543#### Framework 544 545 * Added Assert.Zero and Assert.NotZero methods 546 * You can now pass a `Func<string>` to Asserts to lazily evaluate exception messages 547 * Added the ability to Assert on the order of multiple properties in a collection 548 * Tests with a Timeout will no longer timeout while you are debugging 549 550#### Issues Resolved 551 552 * 144 Pass a `Func<string>` to lazily evaluate an exception message 553 * 995 Enable Warning as Error 554 * 1106 Move various Assembly Info files under Properties for CF 555 * 1334 Add Assert.Zero and Assert.NotZero 556 * 1479 Don't enforce [Timeout] when debugger is attached 557 * 1540 Remove old .NET Core Projects 558 * 1553 Allow ordering tests to be done in multiple properties 559 * 1575 Escaping control chars in custom message 560 * 1596 Eliminate code sharing across projects to be split 561 * 1598 Split framework and console/engine into separate projects 562 * 1610 Refactor dependencies in build.cake 563 * 1615 Appveyor error in TestCF 564 * 1621 Remove console and command-line option files from common 565 * 1640 When submitting only part of optional parameters, all are overriden by defaults 566 * 1641 Create OSX CI Build on Travis 567 * 1663 Find way to hide NUnit.Compatability.Path from intellisense 568 * 1681 NUnitLite under .net core doesn't support TeamCity output 569 * 1683 Existence of SerializableAttribute in .NET Core 570 * 1693 2 unit tests fail due to localization 571 * 1716 Move installer to new repository 572 * 1717 Change suffix for master builds 573 * 1723 Remove Cake target TestAll 574 * 1739 Create separate copies of MockAssembly for framework, engine and extensions 575 * 1751 Serializable attribute exists in both System.Runtime.Serialization.Formatters and nunit.framework 576 * 1775 Support NUnit assertions in partial trust code. 577 * 1800 Remove Console/Engine projects from nunit.linux.sln 578 * 1805 Error message "arguments provided for method not taking any" seems incomplete / doesn't make much sense 579 * 1815 Prevent NullReferenceException in SubPathConstraint 580 581### NUnit 3.4.1 - June 30, 2016 582 583#### Console Runner 584 585 * A new option, --list-extensions, will display all the engine extensions that 586 have been installed by the engine. 587 588#### Issues Resolved 589 590 * 1623 NUnit 3.4 is not integrated with TeamCity 591 * 1626 NUnit.ConsoleRunner is not picking up NUnit.Extension.NUnitV2ResultWriter 592 * 1628 Agent's process stays in memory when it was failed to unload AppDomain 593 * 1635 Console option to list loaded extensions 594 595### NUnit 3.4 - June 25, 2016 596 597#### Framework 598 599 * Improvements in comparing equality using `IEquatable<T>` 600 * Test case names will only be truncated if the runner requests it or it is overridden on the command line 601 with the --test-name-format option 602 * The .NET 2.0 version of the framework now includes LINQ. If your tests target .NET 2.0, you can now use 603 LINQ queries in your tests 604 605#### Engine 606 607 * The TeamCity event listener has been separated out into an engine extension 608 * Fixed numerous issues around thread safety of parallel test runs 609 * Additional fixes to reduce memory usage 610 * Fixes for Mono 4.4 611 612#### Console Runner 613 614 * There is a new --params command line option that allows you to pass parameters to your tests 615 which can be retrieved using TestContext.Parameters 616 * Another new command line option --loaduserprofile causes the User Profile to be loaded into the 617 NUnit Agent process. 618 619#### Issues Resolved 620 621 * 329 (CLI) Runner does not report AppDomain unloading timeout 622 * 720 Need a way to get test-specific command-line arguments at runtime 623 * 1010 Need to control engine use of extensions 624 * 1139 Nunit3 console doesn't show test output continously 625 * 1225 The --teamcity option should really be an extension 626 * 1241 Make TestDirectory accessible when TestCaseSource attributes are evaluated 627 * 1366 Classname for inherited test is not correct 628 * 1371 Support `dotnet test` in .NET CLI and .NET Core 629 * 1379 Console returns 0 for invalid fixtures 630 * 1422 Include TestListWithEmptyLine.tst in ZIP Package 631 * 1423 SingleThreaded attribute should raise an error if a thread is required 632 * 1425 Lazy initialization of OutWriter in TestResult is not thread safe 633 * 1427 Engine extensions load old packages 634 * 1430 TestObjects are retained for lifetime of test run, causing high memory usage 635 * 1432 NUnit hangs when reporting to TeamCity 636 * 1434 TestResult class needs to be thread-safe 637 * 1435 Parallel queue creation needs to be thread-safe 638 * 1436 CurrentFramework and Current Platform need to be more thread-safe 639 * 1439 EqualConstraint does Not use Equals Override on the Expected Object 640 * 1441 Add Linq for use internally in .NET 2.0 code 641 * 1446 TestOrderAttributeTests is not public 642 * 1450 Silverlight detection doesn't work when building on 32-bit OS 643 * 1457 Set the 2.0 build to ignore missing xml dcoumentation 644 * 1463 Should TestResult.AssertCount have a public setter? 645 * 1464 TNode.EscapeInvalidXmlCharacters recreates Regex continually 646 * 1470 Make EventQueue and associated classes lock-less and thread safe 647 * 1476 Examine need for "synchronous" events in event queue 648 * 1481 TestCase with generic return type causes NullReferenceException 649 * 1483 Remoting exceptions during test execution 650 * 1484 Comparing Equality using `IEquatable<T>` Should Use Most Specific Method 651 * 1493 NUnit 2 test results report ParameterizedMethod but should be ParameterizedTest 652 * 1507 NullReferenceException when null arguments are used in TestFixtureAttribute 653 * 1513 Add new teamcity extension to packages 654 * 1518 NUnit does not send the "testStarted" TeamCity service message when exception was thrown from SetUp/OneTimeSetUp 655 * 1520 Detect Portable, Silverlight and Compact and give error message 656 * 1528 Use of Sleep(0) in NUnit 657 * 1543 Blank name attribute in nunit2-formatted XML result file test-run element 658 * 1547 Create separate assembly for System.Linq compatibility classes 659 * 1548 Invalid Exception when engine is in a 32-bit process 660 * 1549 Changing default behavior for generating test case names 661 * 1551 Path in default .addins file for ConsoleRunner package may not exist 662 * 1555 EndsWith calls in Constraint constructor can cause major perf issues 663 * 1560 Engine writes setting file unnecessarily 664 * 1573 Move Nunit.Portable.Agent to new Repo 665 * 1579 NUnit v3 dangerously overrides COMPLUS_Version environment variable 666 * 1582 Mono 4.4.0 Causes Test Failures 667 * 1593 Nunit Console Runner 3.2.1 and Mono 4.4 throws RemotingException 668 * 1597 Move Portable agent to its own repository 669 * 1605 TeamCity package has no pre-release suffix 670 * 1607 nunit.nuget.addins discovery pattern is wrong then restored through project.json 671 * 1617 Load user profile on test runners 672 673### NUnit 3.2.1 - April 19, 2016 674 675#### Framework 676 677 * The output and error files are now thread safe when running tests in parallel 678 * Added a .NET 3.5 build of the framework preventing conflicts with the compatiblity classes in the 2.0 framework 679 * Added a SingleThreadedAttribute to be added to a TestFixture to indicate all child tests should run on the same thread 680 681#### Engine 682 683 * Unless required, run all tests within a fixture on the same thread 684 * Added an EventListener extension point 685 * Reduced memory usage 686 687#### Console Runner 688 689 * No longer probes for newer versions of the engine, instead uses the engine that is included with the console 690 691#### Issues Resolved 692 693 * 332 Add CF to the Appveyor CI build 694 * 640 Keep CF Build (and other future builds) in Sync 695 * 773 Upgrade Travis CI from Legacy Infrastructure 696 * 1141 Explicit Tests get run when using --where with some filters 697 * 1161 NUnit3-Console should disallow the combination of --inprocess and --x86, giving an error message 698 * 1208 Apartment on assembly level broken 699 * 1231 Build may silently fail some tests 700 * 1247 Potential memory issue 701 * 1266 SetCultureAttribute does not work if set on assembly level 702 * 1302 Create EventListener ExtensionPoint for the Engine 703 * 1317 Getting CF framework unit tests running on CI build 704 * 1318 NUnit console runner fails with error code -100 705 * 1327 TestCaseSource in NUnit 3 converts an argument declared as String[] to String 706 * 1329 Unable to build without Compact Framework 707 * 1333 Single Thread per Worker 708 * 1338 BUILDING.txt is outdated 709 * 1349 Collision on System.Func from nunit.framework with System.Core in .Net 3.5 (CS0433) 710 * 1352 Tests losing data setup on thread 711 * 1359 Compilation error in NUnitPortableDriverTests.cs 712 * 1383 Skip Silverlight build if SDK not installed 713 * 1386 Bug when using Assert.Equals() with types that explicitly implement `IEquatable<T>` 714 * 1390 --testlist with file with blank first line causes IndexOutOfRangeException 715 * 1399 Fixed NullReference issue introduced by the fix for #681 716 * 1405 ITestRunner.StopRun throws exception of type 'System.MissingMethodException' 717 * 1406 TextCapture is not threadsafe but is used to intercept calls that are expected to be threadsafe 718 * 1410 Make OutFile and ErrFile streamwriters synchronized 719 * 1413 Switch console to use a local engine 720 721### NUnit 3.2 - March 5, 2016 722 723#### Framework 724 725 * Added an Order attribute that defines the order in which tests are run 726 * Added Assert.ThrowsAsync for testing if async methods throw an exception 727 * You can now compare unlike collections using Is.EquivalentTo().Using(...) 728 * Added the ability to add custom message formatters to MsgUtils 729 * TestCaseSourceAttribute now optionally takes an array of parameters that can be passed to the source method 730 * Added Is.Zero and Is.Not.Zero to the fluent syntax as a shorter option for Is.EqualTo(0) and Is.Not.EqualTo(0) 731 732#### Engine 733 734 * Engine extensions can be installed via NuGet packages 735 736#### Issues Resolved 737 738 * 170 Test Order Attribute 739 * 300 Create an NUnit Visual Studio Template 740 * 464 Async delegate assertions 741 * 532 Batch runner for Silverlight tests 742 * 533 Separate NUnitLite runner and autorunner 743 * 681 NUnit agent cannot resolve test dependency assemblies when mixed mode initialization runs in the default AppDomain 744 * 793 Replace CoreEngine by use of Extensions 745 * 907 Console report tests are too fragile 746 * 922 Wrap Console in NUnitLite 747 * 930 Switch from MSBuild based build system to Cake 748 * 981 Define NUnit Versioning for post-3.0 Development 749 * 1004 Poor formatting of results for Assert.AreEqual(DateTimeOffset, DateTimeOffset) 750 * 1018 ArgumentException when 2.x version of NUnit Framework is in the bin directory 751 * 1022 Support Comparing Unlike Collections using Is.EquivalentTo().Using(...) 752 * 1044 Re-order Test Summary Errors/Failures 753 * 1066 ApartmentAttribute and TestCaseAttribute(s) do not work together 754 * 1103 Can't use TestCaseData from base class 755 * 1109 NullReferenceException when using inherited property for ValueSource 756 * 1113 Console runner and xml output consistency 757 * 1117 Fix misbehaviour of Throws.Exception with non-void returning functions 758 * 1120 NUnitProject should parse .nunit project files containing Xml Declarations 759 * 1121 Usage of field set to null as value source leads to somewhat cryptic error 760 * 1122 Region may be disposed before test delegate is executed 761 * 1133 Provide a way to install extensions as nuget packages 762 * 1136 Don't allow V2 framework to update in V2 driver tests 763 * 1171 A bug when using Assert.That() with Is.Not.Empty 764 * 1185 Engine finds .NET 4.0 Client Profile twice 765 * 1187 ITestAssemblyRunner.StopRun as implemented by NUnitTestAssemblyRunner 766 * 1195 name attribute in test-suite and test-results element of output xml is different to nunit 2.6.4 using nunit2-format 767 * 1196 Custom value formatter for v3 via MsgUtils 768 * 1210 Available runtimes issues 769 * 1230 Add ability for testcasedatasource to have parameters passed to methods 770 * 1233 Add TestAssemblyRunner tests to both portable and silverlight builds 771 * 1234 Have default NUnitLite Runner Program.cs return exit code 772 * 1236 Make Appveyor NuGet feed more useable 773 * 1246 Introduce Is.Zero syntax to test for zero 774 * 1252 Exception thrown when any assembly is not found 775 * 1261 TypeHelper.GetDisplayName generates the wrong name for generic types with nested classes 776 * 1278 Fix optional parameters in TestCaseAttribute 777 * 1282 TestCase using Params Behaves Oddly 778 * 1283 Engine should expose available frameworks. 779 * 1286 value of the time attribute in nunit2 outputs depends on the machine culture 780 * 1297 NUnit.Engine nuget package improvements 781 * 1301 Assert.AreNotSame evaluates ToString unnecessarily 782 783### NUnit 3.0.1 - December 1, 2015 784 785#### Console Runner 786 787 * The Nunit.Runners NuGet package was updated to become a meta-package that pulls in the NUnit.Console package 788 * Reinstated the --pause command line option that will display a message box allowing you to attach a debugger if the --debug option does not work 789 790#### Issues Resolved 791 792 * 994 Add max number of Agents to the NUnit project file 793 * 1014 Ensure NUnit API assembly updates with MSI installs 794 * 1024 Added --pause flag to console runner 795 * 1030 Update Nunit.Runners package to 3.0 796 * 1033 "No arguments were provided" with Theory and Values combination 797 * 1035 Check null arguments 798 * 1037 Async tests not working on Windows 10 Universal 799 * 1041 NUnit2XmlResult Writer is reporting Sucess when test fails 800 * 1042 NUnit2 reports on 3.0 is different than 2.6.4 801 * 1046 FloatingPointNumerics.AreAlmostEqualUlps throws OverflowException 802 * 1049 Cannot select Generic tests from command line 803 * 1050 Do not expose System.Runtime.CompilerServices.ExtensionAttribute to public 804 * 1054 Create nuget feeds for CI builds on Appveyor 805 * 1055 nunit3 console runner --where option does not return error on invalid selection string 806 * 1060 Remove "Version 3" from NUnit Nuget Package 807 * 1061 Nunit30Settings.xml becomes corrupted 808 * 1062 Console.WriteLine statements in "OneTimeSetUp" and "OneTimeTearDown" annotated methods are not directed to the console when using nunit3-console.exe runner 809 * 1063 Error in Random Test 810 811### NUnit 3.0.0 Final Release - November 15, 2015 812 813#### Issues Resolved 814 815 * 635 Mono 4.0 Support 816 817### NUnit 3.0.0 Release Candidate 3 - November 13, 2015 818 819#### Engine 820 821 * The engine now only sets the config file for project.nunit to project.config if project.config exists. Otherwise, each assembly uses its own config, provided it is run in a separate AppDomain by itself. 822 823 NOTE: It is not possible for multiple assemblies in the same AppDomain to use different configs. This is not an NUnit limitation, it's just how configs work! 824 825#### Issues Resolved 826 827 * 856 Extensions support for third party runners in NUnit 3.0 828 * 1003 Delete TeamCityEventHandler as it is not used 829 * 1015 Specifying .nunit project and --framework on command line causes crash 830 * 1017 Remove Assert.Multiple from framework 831 832### NUnit 3.0.0 Release Candidate 2 - November 8, 2015 833 834#### Engine 835 836 * The IDriverFactory extensibility interface has been modified. 837 838#### Issues Resolved 839 840 * 970 Define PARALLEL in CF build of nunitlite 841 * 978 It should be possible to determine version of NUnit using nunit console tool 842 * 983 Inconsistent return codes depending on ProcessModel 843 * 986 Update docs for parallel execution 844 * 988 Don't run portable tests from NUnit Console 845 * 990 V2 driver is passing invalid filter elements to NUnit 846 * 991 Mono.Options should not be exposed to public directly 847 * 993 Give error message when a regex filter is used with NUnit V2 848 * 997 Add missing XML Documentation 849 * 1008 NUnitLite namespace not updated in the NuGet Packages 850 851### NUnit 3.0.0 Release Candidate - November 1, 2015 852 853#### Framework 854 855 * The portable build now supports ASP.NET 5 and the new Core CLR. 856 857 NOTE: The `nunit3-console` runner cannot run tests that reference the portable build. 858 You may run such tests using NUnitLite or a platform-specific runner. 859 860 * `TestCaseAttribute` and `TestCaseData` now allow modifying the test name without replacing it entirely. 861 * The Silverlight packages are now separate downloads. 862 863#### NUnitLite 864 865 * The NUnitLite runner now produces the same output display and XML results as the console runner. 866 867#### Engine 868 869 * The format of the XML result file has been finalized and documented. 870 871#### Console Runner 872 873 * The console runner program is now called `nunit3-console`. 874 * Console runner output has been modified so that the summary comes at the end, to reduce the need for scrolling. 875 876#### Issues Resolved 877 878 * 59 Length of generated test names should be limited 879 * 68 Customization of test case name generation 880 * 404 Split tests between nunitlite.runner and nunit.framework 881 * 575 Add support for ASP.NET 5 and the new Core CLR 882 * 783 Package separately for Silverlight 883 * 833 Intermittent failure of WorkItemQueueTests.StopQueue_WithWorkers 884 * 859 NUnit-Console output - move Test Run Summary to end 885 * 867 Remove Warnings from Ignored tests 886 * 868 Review skipped tests 887 * 887 Move environment and settings elements to the assembly suite in the result file 888 * 899 Colors for ColorConsole on grey background are too light 889 * 904 InternalPreserveStackTrace is not supported on all Portable platforms 890 * 914 Unclear error message from console runner when assembly has no tests 891 * 916 Console runner dies when test agent dies 892 * 918 Console runner --where parameter is case sensitive 893 * 920 Remove addins\nunit.engine.api.dll from NuGet package 894 * 929 Rename nunit-console.exe 895 * 931 Remove beta warnings from NuGet packages 896 * 936 Explicit skipped tests not displayed 897 * 939 Installer complains about .NET even if already installed 898 * 940 Confirm or modify list of packages for release 899 * 947 Breaking API change in ValueSourceAttribute 900 * 949 Update copyright in NUnit Console 901 * 954 NUnitLite XML output is not consistent with the engine's 902 * 955 NUnitLite does not display the where clause 903 * 959 Restore filter options for NUnitLite portable build 904 * 960 Intermittent failure of CategoryFilterTests 905 * 967 Run Settings Report is not being displayed. 906 907### NUnit 3.0.0 Beta 5 - October 16, 2015 908 909#### Framework 910 911 * Parameterized test cases now support nullable arguments. 912 * The NUnit framework may now be built for the .NET Core framework. Note that this is only available through building the source code. A binary will be available in the next release. 913 914#### Engine 915 916 * The engine now runs multiple test assemblies in parallel by default 917 * The output XML now includes more information about the test run, including the text of the command used, any engine settings and the filter used to select tests. 918 * Extensions may now specify data in an identifying attribute, for use by the engine in deciding whether to load that extension. 919 920 921#### Console Runner 922 923 * The console now displays all settings used by the engine to run tests as well as the filter used to select tests. 924 * The console runner accepts a new option --maxagents. If multiple assemblies are run in separate processes, this value may be used to limit the number that are executed simultaneously in parallel. 925 * The console runner no longer accepts the --include and --exclude options. Instead, the new --where option provides a more general way to express which tests will be executed, such as --where "cat==Fast && Priority==High". See the docs for details of the syntax. 926 * The new --debug option causes NUnit to break in the debugger immediately before tests are run. This simplifies debugging, especially when the test is run in a separate process. 927 928##### Issues Resolved 929 930 * 41 Check for zeroes in Assert messages 931 * 254 Finalize XML format for test results 932 * 275 NUnitEqualityComparer fails to compare `IEquatable<T>` where second object is derived from T 933 * 304 Run test Assemblies in parallel 934 * 374 New syntax for selecting tests to be run 935 * 515 OSPlatform.IsMacOSX doesn't work 936 * 573 nunit-console hangs on Mac OS X after all tests have run 937 * 669 TeamCity service message should have assembly name as a part of test name. 938 * 689 The TeamCity service message "testFinished" should have an integer value in the "duration" attribute 939 * 713 Include command information in XML 940 * 719 We have no way to configure tests for several assemblies using NUnit project file and the common installation from msi file 941 * 735 Workers number in xml report file cannot be found 942 * 784 Build Portable Framework on Linux 943 * 790 Allow Extensions to provide data through an attribute 944 * 794 Make it easier to debug tests as well as NUnit itself 945 * 801 NUnit calls Dispose multiple times 946 * 814 Support nullable types with TestCase 947 * 818 Possible error in Merge Pull Request #797 948 * 821 Wrapped method results in loss of result information 949 * 822 Test for Debugger in NUnitTestAssemblyRunner probably should not be in CF build 950 * 824 Remove unused System.Reflection using statements 951 * 826 Randomizer uniqueness tests fail randomly! 952 * 828 Merge pull request #827 (issue 826) 953 * 830 Add ability to report test results synchronously to test runners 954 * 837 Enumerators not disposed when comparing IEnumerables 955 * 840 Add missing copyright notices 956 * 844 Pull Request #835 (Issue #814) does not build in CF 957 * 847 Add new --process:inprocess and --inprocess options 958 * 850 Test runner fails if test name contains invalid xml characters 959 * 851 'Exclude' console option is not working in NUnit Lite 960 * 853 Cannot run NUnit Console from another directory 961 * 860 Use CDATA section for message, stack-trace and output elements of XML 962 * 863 Eliminate core engine 963 * 865 Intermittent failures of StopWatchTests 964 * 869 Tests that use directory separator char to determine platform misreport Linux on MaxOSX 965 * 870 NUnit Console Runtime Environment misreports on MacOSX 966 * 874 Add .NET Core Framework 967 * 878 Cannot exclude MacOSX or XBox platforms when running on CF 968 * 892 Fixed test runner returning early when executing more than one test run. 969 * 894 Give nunit.engine and nunit.engine.api assemblies strong names 970 * 896 NUnit 3.0 console runner not placing test result xml in --work directory 971 972### NUnit 3.0.0 Beta 4 - August 25, 2015 973 974#### Framework 975 976 * A new RetryAttribute allows retrying of failing tests. 977 * New SupersetConstraint and Is.SupersetOf syntax complement SubsetConstraint. 978 * Tests skipped due to ExplicitAttribute are now reported as skipped. 979 980#### Engine 981 982 * We now use Cecil to examine assemblies prior to loading them. 983 * Extensions are no longer based on Mono.Addins but use our own extension framework. 984 985#### Issues Resolved 986 987 * 125 3rd-party dependencies should be downloaded on demand 988 * 283 What should we do when a user extension does something bad? 989 * 585 RetryAttribute 990 * 642 Restructure MSBuild script 991 * 649 Change how we zip packages 992 * 654 ReflectionOnlyLoad and ReflectionOnlyLoadFrom 993 * 664 Invalid "id" attribute in the report for case "test started" 994 * 685 In the some cases when tests cannot be started NUnit returns exit code "0" 995 * 728 Missing Assert.That overload 996 * 741 Explicit Tests get run when using --exclude 997 * 746 Framework should send events for all tests 998 * 747 NUnit should apply attributes even if test is non-runnable 999 * 749 Review Use of Mono.Addins for Engine Extensibility 1000 * 750 Include Explicit Tests in Test Results 1001 * 753 Feature request: Is.SupersetOf() assertion constraint 1002 * 755 TimeOut attribute doesn't work with TestCaseSource Attribute 1003 * 757 Implement some way to wait for execution to complete in ITestEngineRunner 1004 * 760 Packaging targets do not run on Linux 1005 * 766 Added overloads for True()/False() accepting booleans 1006 * 778 Build and build.cmd scripts invoke nuget.exe improperly 1007 * 780 Teamcity fix 1008 * 782 No sources for 2.6.4 1009 1010### NUnit 3.0.0 Beta 3 - July 15, 2015 1011 1012#### Framework 1013 1014 * The RangeAttribute has been extended to support more data types including 1015 uint, long and ulong 1016 * Added platform support for Windows 10 and fixed issues with Windows 8 and 1017 8.1 support 1018 * Added async support to the portable version of NUnit Framework 1019 * The named members of the TestCaseSource and ValueSource attributes must now be 1020 static. 1021 * RandomAttribute has been extended to add support for new data types including 1022 uint, long, ulong, short, ushort, float, byte and sbyte 1023 * TestContext.Random has also been extended to add support for new data types including 1024 uint, long, ulong, short, ushort, float, byte, sbyte and decimal 1025 * Removed the dependency on Microsoft.Bcl.Async from the NUnit Framework assembly 1026 targeting .NET 4.0. If you want to write async tests in .NET 4.0, you will need 1027 to reference the NuGet package yourself. 1028 * Added a new TestFixtureSource attribute which is the equivalent to TestCaseSource 1029 but provides for instantiation of fixtures. 1030 * Significant improvements have been made in how NUnit deduces the type arguments of 1031 generic methods based on the arguments provided. 1032 1033#### Engine 1034 1035 * If the target framework is not specified, test assemblies that are compiled 1036 to target .NET 4.5 will no longer run in .NET 4.0 compatibility mode 1037 1038#### Console 1039 1040 * If the console is run without arguments, it will now display help 1041 1042#### Issues Resolved 1043 1044 * 47 Extensions to RangeAttribute 1045 * 237 System.Uri .ctor works not properly under Nunit 1046 * 244 NUnit should properly distinguish between .NET 4.0 and 4.5 1047 * 310 Target framework not specified on the AppDomain when running against .Net 4.5 1048 * 321 Rationalize how we count tests 1049 * 472 Overflow exception and DivideByZero exception from the RangeAttribute 1050 * 524 int and char do not compare correctly? 1051 * 539 Truncation of string arguments 1052 * 544 AsyncTestMethodTests for 4.5 Framework fails frequently on Travis CI 1053 * 656 Unused parameter in Console.WriteLine found 1054 * 670 Failing Tests in TeamCity Build 1055 * 673 Ensure proper disposal of engine objects 1056 * 674 Engine does not release test assemblies 1057 * 679 Windows 10 Support 1058 * 682 Add Async Support to Portable Framework 1059 * 683 Make FrameworkController available in portable build 1060 * 687 TestAgency does not launch agent process correctly if runtime type is not specified (i.e. v4.0) 1061 * 692 PlatformAttribute_OperatingSystemBitNess fails when running in 32-bit process 1062 * 693 Generic `Test<T>` Method cannot determine type arguments for fixture when passed as `IEnumerable<T>` 1063 * 698 Require TestCaseSource and ValueSource named members to be static 1064 * 703 TeamCity non-equal flowid for 'testStarted' and 'testFinished' messages 1065 * 712 Extensions to RandomAttribute 1066 * 715 Provide a data source attribute at TestFixture Level 1067 * 718 RangeConstraint gives error with from and two args of differing types 1068 * 723 Does nunit.nuspec require dependency on Microsoft.Bcl.Async? 1069 * 724 Adds support for `Nullable<bool>` to Assert.IsTrue and Assert.IsFalse 1070 * 734 Console without parameters doesn't show help 1071 1072### NUnit 3.0.0 Beta 2 - May 12, 2015 1073 1074####Framework 1075 1076 * The Compact Framework version of the framework is now packaged separately 1077 and will be distributed as a ZIP file and as a NuGet package. 1078 * The NUnit 2.x RepeatAttribute was added back into the framework. 1079 * Added Throws.ArgumentNullException 1080 * Added GetString methods to NUnit.Framework.Internal.RandomGenerator to 1081 create repeatable random strings for testing 1082 * When checking the equality of DateTimeOffset, you can now use the 1083 WithSameOffset modifier 1084 * Some classes intended for internal usage that were public for testing 1085 have now been made internal. Additional classes will be made internal 1086 for the final 3.0 release. 1087 1088#### Engine 1089 1090 * Added a core engine which is a non-extensible, minimal engine for use by 1091 devices and similar situations where reduced functionality is compensated 1092 for by reduced size and simplicity of usage. See 1093 https://github.com/nunit/dev/wiki/Core-Engine for more information. 1094 1095#### Issues Resolved 1096 1097 * 22 Add OSArchitecture Attribute to Environment node in result xml 1098 * 24 Assert on Dictionary Content 1099 * 48 Explicit seems to conflict with Ignore 1100 * 168 Create NUnit 3.0 documentation 1101 * 196 Compare DateTimeOffsets including the offset in the comparison 1102 * 217 New icon for the 3.0 release 1103 * 316 NUnitLite TextUI Runner 1104 * 320 No Tests found: Using parametrized Fixture and TestCaseSource 1105 * 360 Better exception message when using non-BCL class in property 1106 * 454 Rare registry configurations may cause NUnit to fail 1107 * 478 RepeatAttribute 1108 * 481 Testing multiple assemblies in nunitlite 1109 * 538 Potential bug using TestContext in constructors 1110 * 546 Enable Parallel in NUnitLite/CF (or more) builds 1111 * 551 TextRunner not passing the NumWorkers option to the ITestAssemblyRunner 1112 * 556 Executed tests should always return a non-zero duration 1113 * 559 Fix text of NuGet packages 1114 * 560 Fix PackageVersion property on wix install projects 1115 * 562 Program.cs in NUnitLite NuGet package is incorrect 1116 * 564 NUnitLite Nuget package is Beta 1a, Framework is Beta 1 1117 * 565 NUnitLite Nuget package adds Program.cs to a VB Project 1118 * 568 Isolate packaging from building 1119 * 570 ThrowsConstraint failure message should include stack trace of actual exception 1120 * 576 Throws.ArgumentNullException would be nice 1121 * 577 Documentation on some members of Throws falsely claims that they return `TargetInvocationException` constraints 1122 * 579 No documentation for recommended usage of TestCaseSourceAttribute 1123 * 580 TeamCity Service Message Uses Incorrect Test Name with NUnit2Driver 1124 * 582 Test Ids Are Not Unique 1125 * 583 TeamCity service messages to support parallel test execution 1126 * 584 Non-runnable assembly has incorrect ResultState 1127 * 609 Add support for integration with TeamCity 1128 * 611 Remove unused --teamcity option from CF build of NUnitLite 1129 * 612 MaxTime doesn't work when used for TestCase 1130 * 621 Core Engine 1131 * 622 nunit-console fails when use --output 1132 * 628 Modify IService interface and simplify ServiceContext 1133 * 631 Separate packaging for the compact framework 1134 * 646 ConfigurationManager.AppSettings Params Return Null under Beta 1 1135 * 648 Passing 2 or more test assemblies targeting > .NET 2.0 to nunit-console fails 1136 1137### NUnit 3.0.0 Beta 1 - March 25, 2015 1138 1139#### General 1140 1141 * There is now a master windows installer for the framework, engine and console runner. 1142 1143#### Framework 1144 1145 * We no longer create a separate framework build for .NET 3.5. The 2.0 and 1146 3.5 builds were essentially the same, so the former should now be used 1147 under both runtimes. 1148 * A new Constraint, DictionaryContainsKeyConstraint, may be used to test 1149 that a specified key is present in a dictionary. 1150 * LevelOfParallelizationAttribute has been renamed to LevelOfParallelismAttribute. 1151 * The Silverlight runner now displays output in color and includes any 1152 text output created by the tests. 1153 * The class and method names of each test are included in the output xml 1154 where applicable. 1155 * String arguments used in test case names are now truncated to 40 rather 1156 than 20 characters. 1157 1158#### Engine 1159 1160 * The engine API has now been finalized. It permits specifying a minimum 1161 version of the engine that a runner is able to use. The best installed 1162 version of the engine will be loaded. Third-party runners may override 1163 the selection process by including a copy of the engine in their 1164 installation directory and specifying that it must be used. 1165 * The V2 framework driver now uses the event listener and test listener 1166 passed to it by the runner. This corrects several outstanding issues 1167 caused by events not being received and allows selecting V2 tests to 1168 be run from the command-line, in the same way that V3 tests are selected. 1169 1170#### Console 1171 1172 * The console now defaults to not using shadowcopy. There is a new option --shadowcopy to turn it on if needed. 1173 1174#### Issues Resolved 1175 1176 * 224 Silverlight Support 1177 * 318 TestActionAttribute: Retrieving the TestFixture 1178 * 428 Add ExpectedExceptionAttribute to C# samples 1179 * 440 Automatic selection of Test Engine to use 1180 * 450 Create master install that includes the framework, engine and console installs 1181 * 477 Assert does not work with ArraySegment 1182 * 482 nunit-console has multiple errors related to -framework option 1183 * 483 Adds constraint for asserting that a dictionary contains a particular key 1184 * 484 Missing file in NUnit.Console nuget package 1185 * 485 Can't run v2 tests with nunit-console 3.0 1186 * 487 NUnitLite can't load assemblies by their file name 1187 * 488 Async setup and teardown still don't work 1188 * 497 Framework installer shold register the portable framework 1189 * 504 Option --workers:0 is ignored 1190 * 508 Travis builds with failure in engine tests show as successful 1191 * 509 Under linux, not all mono profiles are listed as available 1192 * 512 Drop the .NET 3.5 build 1193 * 517 V2 FrameworkDriver does not make use of passed in TestEventListener 1194 * 523 Provide an option to disable shadowcopy in NUnit v3 1195 * 528 V2 FrameworkDriver does not make use of passed in TestFilter 1196 * 530 Color display for Silverlight runner 1197 * 531 Display text output from tests in Silverlight runner 1198 * 534 Add classname and methodname to test result xml 1199 * 541 Console help doesn't indicate defaults 1200 1201### NUnit 3.0.0 Alpha 5 - January 30, 2015 1202 1203#### General 1204 1205 * A Windows installer is now included in the release packages. 1206 1207#### Framework 1208 1209 * TestCaseAttribute now allows arguments with default values to be omitted. Additionaly, it accepts a Platform property to specify the platforms on which the test case should be run. 1210 * TestFixture and TestCase attributes now enforce the requirement that a reason needs to be provided when ignoring a test. 1211 * SetUp, TearDown, OneTimeSetUp and OneTimeTearDown methods may now be async. 1212 * String arguments over 20 characters in length are truncated when used as part of a test name. 1213 1214#### Engine 1215 1216 * The engine is now extensible using Mono.Addins. In this release, extension points are provided for FrameworkDrivers, ProjectLoaders and OutputWriters. The following addins are bundled as a part of NUnit: 1217 * A FrameworkDriver that allows running NUnit V2 tests under NUnit 3.0. 1218 * ProjectLoaders for NUnit and Visual Studio projects. 1219 * An OutputWriter that creates XML output in NUnit V2 format. 1220 * DomainUsage now defaults to Multiple if not specified by the runner 1221 1222#### Console 1223 1224 * New options supported: 1225 * testlist provides a list of tests to run in a file 1226 * stoponerror indicates that the run should terminate when any test fails. 1227 1228#### Issues Resolved 1229 1230 * 20 TestCaseAttribute needs Platform property. 1231 * 60 NUnit should support async setup, teardown, fixture setup and fixture teardown. 1232 * 257 TestCaseAttribute should not require parameters with default values to be specified. 1233 * 266 Pluggable framework drivers. 1234 * 368 Create addin model. 1235 * 369 Project loader addins 1236 * 370 OutputWriter addins 1237 * 403 Move ConsoleOptions.cs and Options.cs to Common and share... 1238 * 419 Create Windows Installer for NUnit. 1239 * 427 [TestFixture(Ignore=true)] should not be allowed. 1240 * 437 Errors in tests under Linux due to hard-coded paths. 1241 * 441 NUnit-Console should support --testlist option 1242 * 442 Add --stoponerror option back to nunit-console. 1243 * 456 Fix memory leak in RuntimeFramework. 1244 * 459 Remove the Mixed Platforms build configuration. 1245 * 468 Change default domain usage to multiple. 1246 * 469 Truncate string arguments in test names in order to limit the length. 1247 1248### NUnit 3.0.0 Alpha 4 - December 30, 2014 1249 1250#### Framework 1251 1252 * ApartmentAttribute has been added, replacing STAAttribute and MTAAttribute. 1253 * Unnecessary overloads of Assert.That and Assume.That have been removed. 1254 * Multiple SetUpFixtures may be specified in a single namespace. 1255 * Improvements to the Pairwise strategy test case generation algorithm. 1256 * The new NUnitLite runner --testlist option, allows a list of tests to be kept in a file. 1257 1258#### Engine 1259 1260 * A driver is now included, which allows running NUnit 2.x tests under NUnit 3.0. 1261 * The engine can now load and run tests specified in a number of project formats: 1262 * NUnit (.nunit) 1263 * Visual Studio C# projects (.csproj) 1264 * Visual Studio F# projects (.vjsproj) 1265 * Visual Studio Visual Basic projects (.vbproj) 1266 * Visual Studio solutions (.sln) 1267 * Legacy C++ and Visual JScript projects (.csproj and .vjsproj) are also supported 1268 * Support for the current C++ format (.csxproj) is not yet available 1269 * Creation of output files like TestResult.xml in various formats is now a 1270 service of the engine, available to any runner. 1271 1272#### Console 1273 1274 * The command-line may now include any number of assemblies and/or supported projects. 1275 1276#### Issues Resolved 1277 1278 * 37 Multiple SetUpFixtures should be permitted on same namespace 1279 * 210 TestContext.WriteLine in an AppDomain causes an error 1280 * 227 Add support for VS projects and solutions 1281 * 231 Update C# samples to use NUnit 3.0 1282 * 233 Update F# samples to use NUnit 3.0 1283 * 234 Update C++ samples to use NUnit 3.0 1284 * 265 Reorganize console reports for nunit-console and nunitlite 1285 * 299 No full path to assembly in XML file under Compact Framework 1286 * 301 Command-line length 1287 * 363 Make Xml result output an engine service 1288 * 377 CombiningStrategyAttributes don't work correctly on generic methods 1289 * 388 Improvements to NUnitLite runner output 1290 * 390 Specify exactly what happens when a test times out 1291 * 396 ApartmentAttribute 1292 * 397 CF nunitlite runner assembly has the wrong name 1293 * 407 Assert.Pass() with ]]> in message crashes console runner 1294 * 414 Simplify Assert overloads 1295 * 416 NUnit 2.x Framework Driver 1296 * 417 Complete work on NUnit projects 1297 * 420 Create Settings file in proper location 1298 1299### NUnit 3.0.0 Alpha 3 - November 29, 2014 1300 1301#### Breaking Changes 1302 1303 * NUnitLite tests must reference both the nunit.framework and nunitlite assemblies. 1304 1305#### Framework 1306 1307 * The NUnit and NUnitLite frameworks have now been merged. There is no longer any distinction 1308 between them in terms of features, although some features are not available on all platforms. 1309 * The release includes two new framework builds: compact framework 3.5 and portable. The portable 1310 library is compatible with .NET 4.5, Silverlight 5.0, Windows 8, Windows Phone 8.1, 1311 Windows Phone Silverlight 8, Mono for Android and MonoTouch. 1312 * A number of previously unsupported features are available for the Compact Framework: 1313 - Generic methods as tests 1314 - RegexConstraint 1315 - TimeoutAttribute 1316 - FileAssert, DirectoryAssert and file-related constraints 1317 1318#### Engine 1319 1320 * The logic of runtime selection has now changed so that each assembly runs by default 1321 in a separate process using the runtime for which it was built. 1322 * On 64-bit systems, each test process is automatically created as 32-bit or 64-bit, 1323 depending on the platform specified for the test assembly. 1324 1325#### Console 1326 1327 * The console runner now runs tests in a separate process per assembly by default. They may 1328 still be run in process or in a single separate process by use of command-line options. 1329 * The console runner now starts in the highest version of the .NET runtime available, making 1330 it simpler to debug tests by specifying that they should run in-process on the command-line. 1331 * The -x86 command-line option is provided to force execution in a 32-bit process on a 64-bit system. 1332 * A writeability check is performed for each output result file before trying to run the tests. 1333 * The -teamcity option is now supported. 1334 1335#### Issues Resolved 1336 1337 * 12 Compact framework should support generic methods 1338 * 145 NUnit-console fails if test result message contains invalid xml characters 1339 * 155 Create utility classes for platform-specific code 1340 * 223 Common code for NUnitLite console runner and NUnit-Console 1341 * 225 Compact Framework Support 1342 * 238 Improvements to running 32 bit tests on a 64 bit system 1343 * 261 Add portable nunitlite build 1344 * 284 NUnitLite Unification 1345 * 293 CF does not have a CurrentDirectory 1346 * 306 Assure NUnit can write resultfile 1347 * 308 Early disposal of runners 1348 * 309 NUnit-Console should support incremental output under TeamCity 1349 * 325 Add RegexConstraint to compact framework build 1350 * 326 Add TimeoutAttribute to compact framework build 1351 * 327 Allow generic test methods in the compact framework 1352 * 328 Use .NET Stopwatch class for compact framework builds 1353 * 331 Alpha 2 CF does not build 1354 * 333 Add parallel execution to desktop builds of NUnitLite 1355 * 334 Include File-related constraints and syntax in NUnitLite builds 1356 * 335 Re-introduce 'Classic' NUnit syntax in NUnitLite 1357 * 336 Document use of separate obj directories per build in our projects 1358 * 337 Update Standard Defines page for .NET 3.0 1359 * 341 Move the NUnitLite runners to separate assemblies 1360 * 367 Refactor XML Escaping Tests 1361 * 372 CF Build TestAssemblyRunnerTests 1362 * 373 Minor CF Test Fixes 1363 * 378 Correct documentation for PairwiseAttribute 1364 * 386 Console Output Improvements 1365 1366### NUnit 3.0.0 Alpha 2 - November 2, 2014 1367 1368#### Breaking Changes 1369 1370 * The console runner no longer displays test results in the debugger. 1371 * The NUnitLite compact framework 2.0 build has been removed. 1372 * All addin support has been removed from the framework. Documentation of NUnit 3.0 extensibility features will be published in time for the beta release. In the interim, please ask for support on the nunit-discuss list. 1373 1374#### General 1375 1376 * A separate solution has been created for Linux 1377 * We now have continuous integration builds under both Travis and Appveyor 1378 * The compact framework 3.5 build is now working and will be supported in future releases. 1379 1380#### New Features 1381 1382 * The console runner now automatically detects 32- versus 64-bit test assemblies. 1383 * The NUnitLite report output has been standardized to match that of nunit-console. 1384 * The NUnitLite command-line has been standardized to match that of nunit-console where they share the same options. 1385 * Both nunit-console and NUnitLite now display output in color. 1386 * ActionAttributes now allow specification of multiple targets on the attribute as designed. This didn't work in the first alpha. 1387 * OneTimeSetUp and OneTimeTearDown failures are now shown on the test report. Individual test failures after OneTimeSetUp failure are no longer shown. 1388 * The console runner refuses to run tests build with older versions of NUnit. A plugin will be available to run older tests in the future. 1389 1390#### Issues Resolved 1391 1392 * 222 Color console for NUnitLite 1393 * 229 Timing failures in tests 1394 * 241 Remove reference to Microslft BCL packages 1395 * 243 Create solution for Linux 1396 * 245 Multiple targets on action attributes not implemented 1397 * 246 C++ tests do not compile in VS2013 1398 * 247 Eliminate trace display when running tests in debug 1399 * 255 Add new result states for more precision in where failures occur 1400 * 256 ContainsConstraint break when used with AndConstraint 1401 * 264 Stacktrace displays too many entries 1402 * 269 Add manifest to nunit-console and nunit-agent 1403 * 270 OneTimeSetUp failure results in too much output 1404 * 271 Invalid tests should be treated as errors 1405 * 274 Command line options should be case insensitive 1406 * 276 NUnit-console should not reference nunit.framework 1407 * 278 New result states (ChildFailure and SetupFailure) break NUnit2XmlOutputWriter 1408 * 282 Get tests for NUnit2XmlOutputWriter working 1409 * 288 Set up Appveyor CI build 1410 * 290 Stack trace still displays too many items 1411 * 315 NUnit 3.0 alpha: Cannot run in console on my assembly 1412 * 319 CI builds are not treating test failures as failures of the build 1413 * 322 Remove Stopwatch tests where they test the real .NET Stopwatch 1414 1415### NUnit 3.0.0 Alpha 1 - September 22, 2014 1416 1417#### Breaking Changes 1418 1419 * Legacy suites are no longer supported 1420 * Assert.NullOrEmpty is no longer supported (Use Is.Null.Or.Empty) 1421 1422#### General 1423 1424 * MsBuild is now used for the build rather than NAnt 1425 * The framework test harness has been removed now that nunit-console is at a point where it can run the tests. 1426 1427#### New Features 1428 1429 * Action Attributes have been added with the same features as in NUnit 2.6.3. 1430 * TestContext now has a method that allows writing to the XML output. 1431 * TestContext.CurrentContext.Result now provides the error message and stack trace during teardown. 1432 * Does prefix operator supplies several added constraints. 1433 1434#### Issues Resolved 1435 1436 * 6 Log4net not working with NUnit 1437 * 13 Standardize commandline options for nunitlite runner 1438 * 17 No allowance is currently made for nullable arguents in TestCase parameter conversions 1439 * 33 TestCaseSource cannot refer to a parameterized test fixture 1440 * 54 Store message and stack trace in TestContext for use in TearDown 1441 * 111 Implement Changes to File, Directory and Path Assertions 1442 * 112 Implement Action Attributes 1443 * 156 Accessing multiple AppDomains within unit tests result in SerializationException 1444 * 163 Add --trace option to NUnitLite 1445 * 167 Create interim documentation for the alpha release 1446 * 169 Design and implement distribution of NUnit packages 1447 * 171 Assert.That should work with any lambda returning bool 1448 * 175 Test Harness should return an error if any tests fail 1449 * 180 Errors in Linux CI build 1450 * 181 Replace NAnt with MsBuild / XBuild 1451 * 183 Standardize commandline options for test harness 1452 * 188 No output from NUnitLite when selected test is not found 1453 * 189 Add string operators to Does prefix 1454 * 193 TestWorkerTests.BusyExecutedIdleEventsCalledInSequence fails occasionally 1455 * 197 Deprecate or remove Assert.NullOrEmpty 1456 * 202 Eliminate legacy suites 1457 * 203 Combine framework, engine and console runner in a single solution and repository 1458 * 209 Make Ignore attribute's reason mandatory 1459 * 215 Running 32-bit tests on a 64-bit OS 1460 * 219 Teardown failures are not reported 1461 1462#### Console Issues Resolved (Old nunit-console project, now combined with nunit) 1463 1464 * 2 Failure in TestFixtureSetUp is not reported correctly 1465 * 5 CI Server for nunit-console 1466 * 6 System.NullReferenceException on start nunit-console-x86 1467 * 21 NUnitFrameworkDriverTests fail if not run from same directory 1468 * 24 'Debug' value for /trace option is deprecated in 2.6.3 1469 * 38 Confusing Excluded categories output 1470 1471### NUnit 2.9.7 - August 8, 2014 1472 1473#### Breaking Changes 1474 1475 * NUnit no longer supports void async test methods. You should use a Task return Type instead. 1476 * The ExpectedExceptionAttribute is no longer supported. Use Assert.Throws() or Assert.That(..., Throws) instead for a more precise specification of where the exception is expected to be thrown. 1477 1478#### New Features 1479 1480 * Parallel test execution is supported down to the Fixture level. Use ParallelizableAttribute to indicate types that may be run in parallel. 1481 * Async tests are supported for .NET 4.0 if the user has installed support for them. 1482 * A new FileExistsConstraint has been added along with FileAssert.Exists and FileAssert.DoesNotExist 1483 * ExpectedResult is now supported on simple (non-TestCase) tests. 1484 * The Ignore attribute now takes a named parameter Until, which allows specifying a date after which the test is no longer ignored. 1485 * The following new values are now recognized by PlatformAttribute: Win7, Win8, Win8.1, Win2012Server, Win2012ServerR2, NT6.1, NT6.2, 32-bit, 64-bit 1486 * TimeoutAttribute is now supported under Silverlight 1487 * ValuesAttribute may be used without any values on an enum or boolean argument. All possible values are used. 1488 * You may now specify a tolerance using Within when testing equality of DateTimeOffset values. 1489 * The XML output now includes a start and end time for each test. 1490 1491#### Issues Resolved 1492 1493 * 8 [SetUpFixture] is not working as expected 1494 * 14 CI Server for NUnit Framework 1495 * 21 Is.InRange Constraint Ambiguity 1496 * 27 Values attribute support for enum types 1497 * 29 Specifying a tolerance with "Within" doesn't work for DateTimeOffset data types 1498 * 31 Report start and end time of test execution 1499 * 36 Make RequiresThread, RequiresSTA, RequiresMTA inheritable 1500 * 45 Need of Enddate together with Ignore 1501 * 55 Incorrect XML comments for CollectionAssert.IsSubsetOf 1502 * 62 Matches(Constraint) does not work as expected 1503 * 63 Async support should handle Task return type without state machine 1504 * 64 AsyncStateMachineAttribute should only be checked by name 1505 * 65 Update NUnit Wiki to show the new location of samples 1506 * 66 Parallel Test Execution within test assemblies 1507 * 67 Allow Expected Result on simple tests 1508 * 70 EquivalentTo isn't compatible with IgnoreCase for dictioneries 1509 * 75 Async tests should be supported for projects that target .NET 4.0 1510 * 82 nunit-framework tests are timing out on Linux 1511 * 83 Path-related tests fail on Linux 1512 * 85 Culture-dependent NUnit tests fail on non-English machine 1513 * 88 TestCaseSourceAttribute documentation 1514 * 90 EquivalentTo isn't compatible with IgnoreCase for char 1515 * 100 Changes to Tolerance definitions 1516 * 110 Add new platforms to PlatformAttribute 1517 * 113 Remove ExpectedException 1518 * 118 Workarounds for missing InternalPreserveStackTrace in mono 1519 * 121 Test harness does not honor the --worker option when set to zero 1520 * 129 Standardize Timeout in the Silverlight build 1521 * 130 Add FileAssert.Exists and FileAssert.DoesNotExist 1522 * 132 Drop support for void async methods 1523 * 153 Surprising behavior of DelayedConstraint pollingInterval 1524 * 161 Update API to support stopping an ongoing test run 1525 1526NOTE: Bug Fixes below this point refer to the number of the bug in Launchpad. 1527 1528### NUnit 2.9.6 - October 4, 2013 1529 1530#### Main Features 1531 1532 * Separate projects for nunit-console and nunit.engine 1533 * New builds for .NET 4.5 and Silverlight 1534 * TestContext is now supported 1535 * External API is now stable; internal interfaces are separate from API 1536 * Tests may be run in parallel on separate threads 1537 * Solutions and projects now use VS2012 (except for Compact framework) 1538 1539#### Bug Fixes 1540 1541 * 463470 We should encapsulate references to pre-2.0 collections 1542 * 498690 Assert.That() doesn't like properties with scoped setters 1543 * 501784 Theory tests do not work correctly when using null parameters 1544 * 531873 Feature: Extraction of unit tests from NUnit test assembly and calling appropriate one 1545 * 611325 Allow Teardown to detect if last test failed 1546 * 611938 Generic Test Instances disappear 1547 * 655882 Make CategoryAttribute inherited 1548 * 664081 Add Server2008 R2 and Windows 7 to PlatformAttribute 1549 * 671432 Upgrade NAnt to Latest Release 1550 * 676560 Assert.AreEqual does not support `IEquatable<T>` 1551 * 691129 Add Category parameter to TestFixture 1552 * 697069 Feature request: dynamic location for TestResult.xml 1553 * 708173 NUnit's logic for comparing arrays - use `Comparer<T[]>` if it is provided 1554 * 709062 "System.ArgumentException : Cannot compare" when the element is a list 1555 * 712156 Tests cannot use AppDomain.SetPrincipalPolicy 1556 * 719184 Platformdependency in src/ClientUtilities/util/Services/DomainManager.cs:40 1557 * 719187 Using Path.GetTempPath() causes conflicts in shared temporary folders 1558 * 735851 Add detection of 3.0, 3.5 and 4.0 frameworks to PlatformAttribute 1559 * 736062 Deadlock when EventListener performs a Trace call + EventPump synchronisation 1560 * 756843 Failing assertion does not show non-linear tolerance mode 1561 * 766749 net-2.0\nunit-console-x86.exe.config should have a `<startup/>` element and also enable loadFromRemoteSources 1562 * 770471 Assert.IsEmpty does not support IEnumerable 1563 * 785460 Add Category parameter to TestCaseSourceAttribute 1564 * 787106 EqualConstraint provides inadequate failure information for IEnumerables 1565 * 792466 TestContext MethodName 1566 * 794115 HashSet incorrectly reported 1567 * 800089 Assert.Throws() hides details of inner AssertionException 1568 * 848713 Feature request: Add switch for console to break on any test case error 1569 * 878376 Add 'Exactly(n)' to the NUnit constraint syntax 1570 * 882137 When no tests are run, higher level suites display as Inconclusive 1571 * 882517 NUnit 2.5.10 doesn't recognize TestFixture if there are only TestCaseSource inside 1572 * 885173 Tests are still executed after cancellation by user 1573 * 885277 Exception when project calls for a runtime using only 2 digits 1574 * 885604 Feature request: Explicit named parameter to TestCaseAttribute 1575 * 890129 DelayedConstraint doesn't appear to poll properties of objects 1576 * 892844 Not using Mono 4.0 profile under Windows 1577 * 893919 DelayedConstraint fails polling properties on references which are initially null 1578 * 896973 Console output lines are run together under Linux 1579 * 897289 Is.Empty constraint has unclear failure message 1580 * 898192 Feature Request: Is.Negative, Is.Positive 1581 * 898256 `IEnumerable<T>` for Datapoints doesn't work 1582 * 899178 Wrong failure message for parameterized tests that expect exceptions 1583 * 904841 After exiting for timeout the teardown method is not executed 1584 * 908829 TestCase attribute does not play well with variadic test functions 1585 * 910218 NUnit should add a trailing separator to the ApplicationBase 1586 * 920472 CollectionAssert.IsNotEmpty must dispose Enumerator 1587 * 922455 Add Support for Windows 8 and Windows 2012 Server to PlatformAttribute 1588 * 928246 Use assembly.Location instead of assembly.CodeBase 1589 * 958766 For development work under TeamCity, we need to support nunit2 formatted output under direct-runner 1590 * 1000181 Parameterized TestFixture with System.Type as constructor arguments fails 1591 * 1000213 Inconclusive message Not in report output 1592 * 1023084 Add Enum support to RandomAttribute 1593 * 1028188 Add Support for Silverlight 1594 * 1029785 Test loaded from remote folder failed to run with exception System.IODirectory 1595 * 1037144 Add MonoTouch support to PlatformAttribute 1596 * 1041365 Add MaxOsX and Xbox support to platform attribute 1597 * 1057981 C#5 async tests are not supported 1598 * 1060631 Add .NET 4.5 build 1599 * 1064014 Simple async tests should not return `Task<T>` 1600 * 1071164 Support async methods in usage scenarios of Throws constraints 1601 * 1071343 Runner.Load fails on CF if the test assembly contains a generic method 1602 * 1071861 Error in Path Constraints 1603 * 1072379 Report test execution time at a higher resolution 1604 * 1074568 Assert/Assume should support an async method for the ActualValueDelegate 1605 * 1082330 Better Exception if SetCulture attribute is applied multiple times 1606 * 1111834 Expose Random Object as part of the test context 1607 * 1111838 Include Random Seed in Test Report 1608 * 1172979 Add Category Support to nunitlite Runner 1609 * 1203361 Randomizer uniqueness tests sometimes fail 1610 * 1221712 When non-existing test method is specified in -test, result is still "Tests run: 1, Passed: 1" 1611 * 1223294 System.NullReferenceException thrown when ExpectedExceptionAttribute is used in a static class 1612 * 1225542 Standardize commandline options for test harness 1613 1614#### Bug Fixes in 2.9.6 But Not Listed Here in the Release 1615 1616 * 541699 Silverlight Support 1617 * 1222148 /framework switch does not recognize net-4.5 1618 * 1228979 Theories with all test cases inconclusive are not reported as failures 1619 1620 1621### NUnit 2.9.5 - July 30, 2010 1622 1623#### Bug Fixes 1624 1625 * 483836 Allow non-public test fixtures consistently 1626 * 487878 Tests in generic class without proper TestFixture attribute should be invalid 1627 * 498656 TestCase should show array values in GUI 1628 * 513989 Is.Empty should work for directories 1629 * 519912 Thread.CurrentPrincipal Set In TestFixtureSetUp Not Maintained Between Tests 1630 * 532488 constraints from ConstraintExpression/ConstraintBuilder are not reusable 1631 * 590717 categorie contains dash or trail spaces is not selectable 1632 * 590970 static TestFixtureSetUp/TestFixtureTearDown methods in base classes are not run 1633 * 595683 NUnit console runner fails to load assemblies 1634 * 600627 Assertion message formatted poorly by PropertyConstraint 1635 * 601108 Duplicate test using abstract test fixtures 1636 * 601645 Parametered test should try to convert data type from source to parameter 1637 * 605432 ToString not working properly for some properties 1638 * 606548 Deprecate Directory Assert in 2.5 and remove it in 3.0 1639 * 608875 NUnit Equality Comparer incorrectly defines equality for Dictionary objects 1640 1641### NUnit 2.9.4 - May 4, 2010 1642 1643#### Bug Fixes 1644 1645 * 419411 Fixture With No Tests Shows as Non-Runnable 1646 * 459219 Changes to thread princpal cause failures under .NET 4.0 1647 * 459224 Culture test failure under .NET 4.0 1648 * 462019 Line endings needs to be better controlled in source 1649 * 462418 Assume.That() fails if I specify a message 1650 * 483845 TestCase expected return value cannot be null 1651 * 488002 Should not report tests in abstract class as invalid 1652 * 490679 Category in TestCaseData clashes with Category on ParameterizedMethodSuite 1653 * 501352 VS2010 projects have not been updated for new directory structure 1654 * 504018 Automatic Values For Theory Test Parameters Not Provided For bool And enum 1655 * 505899 'Description' parameter in both TestAttribute and TestCaseAttribute is not allowed 1656 * 523335 TestFixtureTearDown in static class not executed 1657 * 556971 Datapoint(s)Attribute should work on `IEnumerable<T>` as well as on Arrays 1658 * 561436 SetCulture broken with 2.5.4 1659 * 563532 DatapointsAttribute should be allowed on properties and methods 1660 1661###NUnit 2.9.3 - October 26, 2009 1662 1663#### Main Features 1664 1665 * Created new API for controlling framework 1666 * New builds for .Net 3.5 and 4.0, compact framework 3.5 1667 * Support for old style tests has been removed 1668 * New adhoc runner for testing the framework 1669 1670#### Bug Fixes 1671 1672 * 432805 Some Framework Tests don't run on Linux 1673 * 440109 Full Framework does not support "Contains" 1674 1675###NUnit 2.9.2 - September 19, 2009 1676 1677####Main Features 1678 1679 * NUnitLite code is now merged with NUnit 1680 * Added NUnitLite runner to the framework code 1681 * Added Compact framework builds 1682 1683####Bug Fixes 1684 1685 * 430100 `Assert.Catch<T>` should return T 1686 * 432566 NUnitLite shows empty string as argument 1687 * 432573 Mono test should be at runtime 1688 1689###NUnit 2.9.1 - August 27, 2009 1690 1691####General 1692 1693 * Created a separate project for the framework and framework tests 1694 * Changed license to MIT / X11 1695 * Created Windows installer for the framework 1696 1697####Bug Fixes 1698 1699 * 400502 NUnitEqualityComparer.StreamsEqual fails for same stream 1700 * 400508 TestCaseSource attirbute is not working when Type is given 1701 * 400510 TestCaseData variable length ctor drops values 1702 * 417557 Add SetUICultureAttribute from NUnit 2.5.2 1703 * 417559 Add Ignore to TestFixture, TestCase and TestCaseData 1704 * 417560 Merge Assert.Throws and Assert.Catch changes from NUnit 2.5.2 1705 * 417564 TimeoutAttribute on Assembly 1706