forked from nunit/nunit-console
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGES.txt
1413 lines (1176 loc) · 68.6 KB
/
CHANGES.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
NUnit Console 3.10 - March 24, 2019
This release merges the .NET Standard version of the engine back into the nunit.engine
NuGet package and adds a .NET Standard 2.0 version of the engine that re-enables most
services and extensions. This deprecates the `nunit.engine.netstandard` NuGet package.
Any test runners using the old .NET Standard version of the engine should switch to
this release.
The `--params` command line option which took multiple test parameters separated by
a semi-colon is now deprecated in favor of the new `--testparam` command line option.
One of the most common uses for test parameters was to pass connection strings into
tests but this required workarounds to handle the semi-colons. Now you must pass in
each test parameter separately using a `--testparam` or `-tp` option for each.
Issues Resolved
* 8 TempResourceFile.Dispose causes run to hang
* 23 In nunit3-console you cannot pass parameters containing ';' because they always get splitted
* 178 Add date and time to console output
* 282 "Execution terminated after first error" does not fail the console runner
* 388 Merge .NET Standard Engine back into the main solution
* 389 Update Mono.Cecil to latest
* 433 All messages from EventListenerTextWriter goes to console output independent on stream name
* 454 Misc improvements to ExtensionServiceTests
* 455 Remove CF, Silverlight and PORTABLE functionality
* 464 NUnit Console Reports Successful Exit Code When there is an Exception on Dispose
* 473 ArgumentException: DTD is prohibited in this XML document
* 476 .NET Standard engine to load extensions
* 479 Merge .NET Standard Engine code back into the main solution
* 483 Error in SetUpFixture does not result in non-zero exit code
* 485 Invalid integer arguments do not display properly in error message
* 493 Correct order of params to Guard.ArgumentValid()
* 498 Reset console colors after Ctrl-C
* 501 Create result directory if it does not exist
* 502 Remove unused method from build.cake
* 506 Dogfood NUnit.Analyzers via the nunit-console tests
* 508 Re-Enable OSX CI tests
* 515 Appveyor CI failing on master
* 518 Correct Refactoring Error
* 519 Break up multiple console error messages with colour
* 523 Reloading multiple files causes exception
* 524 .NET Standard 2.0 engine crashes when .NET Framework extensions are in Global NuGet Cache
* 525 Separate NuGet Restore for Appveyor build
* 531 Building a forked master branch results in publishing artifacts
* 533 Duplicate ids when loading a project
* 544 Deprecate nunit.netstandard.engine NuGet package
* 546 Cannot run a project file using --process:Separate
* 547 --labels=Before ignores --nocolor
* 556 Appveyor CI failing due to nuget restore
* 557 Disable CliFallbackFolder as a nuget source
* 562 Fix typo in comment
* 563 ProjectService is incorrectly initialized in agents
* 565 Eliminate -dbg suffix from version
* 566 SettingsService is not needed in agents
* 567 Unnecessary call to IProjectService
* 571 Space characters in the work directory path are not properly handled
* 583 NUnit Console NuGet Package Doesn't Load Extensions
* 587 Disable new MSBuild GenerateSupportedRuntime functionality, which breaks framework targetting
NUnit Console 3.9 - September 5, 2018
This release should stop the dreaded SocketException problem on shutdown. The
console also no longer returns -5 when AppDomains fail to unload at the end of a
test run. These fixes should make CI runs much more stable and predictable.
For developers working on the NUnit Console and Engine project, Visual Studio
2017 update 5 or newer is now required to compile on the command line. This does
not effect developers using NUnit or the NUnit Console, both of which support building
and running your tests in any IDE and on any .NET Framework back to .NET 2.0.
Issues Resolved
* 103 The switch statement does not cover all values of the 'RuntimeType' enum: NetCF.
* 218 Move Distribution back into the nunit-console project.
* 253 Master Chocolatey issue
* 255 SocketException thrown during console run
* 312 CI failure: SocketException
* 360 CommandLineOption --err does not write error input to ErrorFile
* 367 nunit3-console loads nunit.framework with partial name
* 370 Nunit.Console 3.8 - Socket Exception
* 371 Remove -5 exit code on app domain unload failures
* 394 Multi-targeted Engine Extensions
* 399 Fix minor doccoment issues
* 411 Make output received when providing user friendly messages unloading the domain more user friendly
* 412 Extensions not dectected for version 3.9.0-dev-03997
* 436 NUnitEngineException : Unable to acquire remote process agent
* 446 Output CI version info to console
* 448 Update vs-project-loader extension to 3.8.0
* 450 Update NUnit.Extension.VSProjectLoader to 3.8.0
* 456 NuGet Package : Add `repository` metadata.
* 461 Use MSBuild /restore
NUnit Console 3.8 - January 27, 2018
This release includes several fixes when unloading AppDomains and better error reporting. The
aggregate NuGet packages also include updated versions of several extensions.
Issues Resolved
* 6 TypeLoadException in nunit3-console 3.0.1
* 93 Update Readme with information about the NuGet packages
* 111 Provide better info when AppDomain won't unload
* 116 NUnit 3.5.0 defaults to single agent process when using an nunit project file
* 191 Exception encountered unloading AppDomain
* 228 System.Reflection.TargetInvocationException with nunit3-console --debug on Mono
* 246 No way to specify app.config with console runner
* 256 Rewrite ConsoleRunnerTests.ThrowsNUnitEngineExceptionWhenTestResultsAreNotWriteable()
* 259 NUnit3 agent hangs after encountering an "CannotUnloadAppDomainException"
* 262 Transform file existence check should check current directory instead of WorkDirectory
* 267 Fix possible NRE
* 273 Insufficient error handling message in ProcessRunner -> RunTests method
* 275 Integrate chocolatey packages with build script
* 284 NUnit3: An exception occured in the driver while loading tests... bei NUnit.Engine.Runners.ProcessRunner.RunTests(ITestEventListener listener, TestFilter filter)
* 285 ColorConsoleWriter.WriteLabel causes NullReferenceException
* 289 Warnings not displayed
* 298 Invalid --framework option throws exception
* 300 Agents do not respect the Console WORK parameter when writing log file
* 304 Catch agent debugger launch exceptions, and improve agent crash handling
* 309 No driver found if framework assembly reference has uppercase characters
* 314 Update NUnit.Extension.VSProjectLoader to 3.7.0
* 318 Update NUnit.Extension.TeamCityEventListener to 1.0.3
* 320 Return error code -5 when AppDomain fails to unload
* 323 Assertion should not be ordered in AgentDatabaseTests
* 343 Superfluous unload error shown in console
* 349 Get all TestEngine tests running under NUnitAdapter apart from those .
* 350 Invalid assemblies no longer give an error message
* 355 NuGet package links to outdated license
NUnit Console 3.7 - July 13, 2017
Engine
* Creates a .NET Standard version of the engine for use in the Visual Studio Adapter
* Fixes several issues that caused the runner to exit with a SocketException
Issues Resolved
* 10 Create a .NET Standard version of the Engine
* 11 insufficient info on driver reflection exception
* 12 Upgrade Cake build to latest version
* 24 Update --labels switch with option to show real-time pass/fail results in console runner
* 31 Nunit 3.4.1 NUnit.Engine.Runners
* 72 TestContext.Progress.Write writes new line
* 82 Remove unused repository paths from repositories.config
* 99 Remove unused --verbose and --full command line options
* 126 Resolve differences between NUnit Console and NUnitLite implementations of @filename
* 162 Add namespace keyword to Test Selection Language
* 171 Socket Exception when stopping Remote Agent
* 172 Limit Language level to C#6
* 193 Settings are stored with invariant culture but retrieved with CurrentCulture
* 194 Better logging or error handling in SettingsStore.SaveSettings
* 196 Allow comments in @FILE files
* 200 Remove obsolete warnings from build script
* 206 Remove reference to removed noxml option
* 207 Create Chocolatey package(s) for the console
* 208 Explore flags test update
* 213 Master build failing after merging .NET Standard Engine
* 216 Compiling mock-assembly in Visual Studio 2017 fails
* 217 NUnit .NET Standard NuGet package missing some values
* 219 Runtime.Remoting.RemotingException in NUnit.Engine.Runners.ProcessRunner.Dispose
* 221 Added missing nuget package info
* 222 Improve missing agent error message
* 225 SocketException thrown by nunit3-console.exe --explore option
* 248 Agent TestEngine contains duplicate services
* 254 Correct misprint ".con" -> ".com"
* 252 Console crashes when specifying both format and transform for result
NUnit Console 3.6.1 - March 6, 2017
Engine
* This hotfix release addresses a race condition in the Engine that caused
tests to intermittently fail.
Issues Resolved
* 168 Intermittent errors while running tests after updating to 3.6
NUnit Console 3.6 - January 14, 2017
Console Runner
* Added command line option --skipnontestassemblies to skip assemblies that do
not contain tests without raising an error and to skip assemblies that contain
the NUnit.Framework.NonTestAssemblyAttribute.
* Messages from the new Multiple Assert blocks will be displayed individually
* Warnings from the new Warn.If, Warn.Unless and Assert.Warn are now displayed
Engine
* NUnit agents now monitor the running engine process and will terminate themselves
if the parent runner process is killed or dies
Issues Resolved
* 16 NUnit Engine Tests fail if not run from test directory
* 18 Invalid file type is shown in XML as type="Assembly"
* 23 In nunit3-console you cannot pass parameters containing ';' because they always get split
* 37 NUnit 3 console should produce xml events for ITestEventListener which contain
unique id in the scope of all test agents for NUnit 2 tests
* 58 System.Configuration.ConfigurationErrorsException thrown in multiple domain mode.
* 62 NUnit3 Fails on DLL with no Tests, Unlike NUnit2
* 100 Class NUnit.Engine.Services.ResultWriters.Tests.SchemaValidator is never used
* 101 Method NUnit.Options.OptionSet.Unprocessed always returns "false"
* 104 Type of variable enumerated in 'foreach' is not guaranteed to be castable
* 110 Writability check could give a friendlier message.
* 113 Add task descriptions to Build.cake
* 127 Modify console runner to display multiple assert information
* 128 Terminate agent if main process has terminated
* 133 NUnit downloadable packages zip file naming is confusing and non-intuitive
* 136 Handle early termination of multiple assert block
* 138 Report Warnings in console runner
* 145 MasterTestRunner.RunAsync no longer provides start-run and test-run events
* 151 Unexpected behaviour from --framework flag
* 153 Remove some settings used by the engine
* 156 Use high-quality icon for nuspecs
* 157 Fix Detection of invalid framework when --inprocess
* 159 Update extension versions in the NuSpec Files
NUnit Console 3.5 - October 11, 2016
This is the first version of NUnit where the framework will be released separately from the
console runner, engine and other extensions. From this point forward, the NUnit console and engine will be
released on its own schedule that is not bound to that of any other NUnit project and version numbers
may diverge over time.
This is also the first release where the NUnit Framework will not be included in the installer. Only
the console runner, engine and extensions will be available as an MSI installer.
Console Runner
* When running multiple assemblies in their own projects with `--agents` set to a number that is
lower than the number of assemblies, the number of concurrent processes is limited to that number.
Previously, all processes were created at the start of the run.
Engine
* All of our extensions have been moved to separate repositories and are now built and
distributed separately. This includes the NUnit V2 Driver, NUnit V2 Result Writer,
NUnit Project Loader and VS Project Loader. The Teamcity extension was moved to its
own repository previously.
* Newer versions of Mono are now detected and used under Windows when requested.
* It is now possible to write a custom framework driver extension for NUnit 3, which will
be used instead of the built-in driver.
Issues Resolved Prior to Split (These are in the nunit repository)
* 1389 specifying solution and --agents is not working with nunit3-console
* 1595 Separate installer project
* 1596 Eliminate code sharing across projects to be split
* 1598 Split framework and console/engine into separate projects
* 1600 Split Engine Extensions into separarate projects
* 1610 Refactor dependencies in build.cake
* 1621 Remove console and command-line option files from common
* 1641 Create OSX CI Build on Travis
* 1677 Console help should indicate extension needed to use --teamcity
* 1687 Create nunit.engine.api NuGet package
* 1702 Create separate repo for teamcity event listener extension
* 1716 Move installer to new repository
* 1717 Change suffix for master builds
* 1719 Restore teamcity extension to NUnit.Console and NUnit.Runners packages
* 1723 Remove Cake target TestAll
* 1727 V2 Framework Driver does not include class or method name in XML
* 1732 NullReferenceException when using either --inprocess or --domain=Multiple options
* 1739 Create separate copies of MockAssembly for framework, engine and extensions
* 1741 --domain=None does not work
* 1776 Logger in DefaultTestAssemblyBuilder is retrieved before InternalTrace is initialized
* 1800 Remove Console/Engine projects from nunit.linux.sln
Issues Resolved After Split (These are in the nunit-console repository)
* 2 Split Engine Extensions into separate projects
* 30 Error message "File type is not supported" when uses .nunit configuration file
* 34 Mono detection on Windows broken
* 36 Console runner spawns too many agents
* 43 Agent's process stays in memory when it was failed to unload appdomain
* 47 Move V2 framework driver extension to its own repo
* 48 Move V2 XML result writer to its own repo
* 49 Move NUnit project loader to its own repo
* 50 Move VS project loader to its own repo
* 63 --encoding option for Console stdout
* 67 Update text of NUnit.ConsoleRunner NuGet package
* 70 Allow custom framework drivers to run before NUnit3DriverFactory
* 88 The --labels:All option displays at the wrong time
NUnit 3.4.1 - June 30, 2016
Console Runner
* A new option, --list-extensions, will display all the engine extensions that
have been installed by the engine.
Issues Resolved
* 1623 NUnit 3.4 is not integrated with TeamCity
* 1626 NUnit.ConsoleRunner is not picking up NUnit.Extension.NUnitV2ResultWriter
* 1628 Agent's process stays in memory when it was failed to unload AppDomain
* 1635 Console option to list loaded extensions
NUnit 3.4 - June 25, 2016
Framework
* Improvements in comparing equality using IEquatable<T>
* Test case names will only be truncated if the runner requests it or it is overridden on the command line
with the --test-name-format option
* The .NET 2.0 version of the framework now includes LINQ. If your tests target .NET 2.0, you can now use
LINQ queries in your tests
Engine
* The TeamCity event listener has been separated out into an engine extension
* Fixed numerous issues around thread safety of parallel test runs
* Additional fixes to reduce memory usage
* Fixes for Mono 4.4
Console Runner
* There is a new --params command line option that allows you to pass parameters to your tests
which can be retrieved using TestContext.Parameters
* Another new command line option --loaduserprofile causes the User Profile to be loaded into the
NUnit Agent process.
Issues Resolved
* 329 (CLI) Runner does not report AppDomain unloading timeout
* 720 Need a way to get test-specific command-line arguments at runtime
* 1010 Need to control engine use of extensions
* 1139 Nunit3 console doesn't show test output continously
* 1225 The --teamcity option should really be an extension
* 1241 Make TestDirectory accessible when TestCaseSource attributes are evaluated
* 1366 Classname for inherited test is not correct
* 1371 Support `dotnet test` in .NET CLI and .NET Core
* 1379 Console returns 0 for invalid fixtures
* 1422 Include TestListWithEmptyLine.tst in ZIP Package
* 1423 SingleThreaded attribute should raise an error if a thread is required
* 1425 Lazy initialization of OutWriter in TestResult is not thread safe
* 1427 Engine extensions load old packages
* 1430 TestObjects are retained for lifetime of test run, causing high memory usage
* 1432 NUnit hangs when reporting to TeamCity
* 1434 TestResult class needs to be thread-safe
* 1435 Parallel queue creation needs to be thread-safe
* 1436 CurrentFramework and Current Platform need to be more thread-safe
* 1439 EqualConstraint does Not use Equals Override on the Expected Object
* 1441 Add Linq for use internally in .NET 2.0 code
* 1446 TestOrderAttributeTests is not public
* 1450 Silverlight detection doesn't work when building on 32-bit OS
* 1457 Set the 2.0 build to ignore missing xml dcoumentation
* 1463 Should TestResult.AssertCount have a public setter?
* 1464 TNode.EscapeInvalidXmlCharacters recreates Regex continually
* 1470 Make EventQueue and associated classes lock-less and thread safe
* 1476 Examine need for "synchronous" events in event queue
* 1481 TestCase with generic return type causes NullReferenceException
* 1483 Remoting exceptions during test execution
* 1484 Comparing Equality using IEquatable<T> Should Use Most Specific Method
* 1493 NUnit 2 test results report ParameterizedMethod but should be ParameterizedTest
* 1507 NullReferenceException when null arguments are used in TestFixtureAttribute
* 1513 Add new teamcity extension to packages
* 1518 NUnit does not send the "testStarted" TeamCity service message when exception was thrown from SetUp/OneTimeSetUp
* 1520 Detect Portable, Silverlight and Compact and give error message
* 1528 Use of Sleep(0) in NUnit
* 1543 Blank name attribute in nunit2-formatted XML result file test-run element
* 1547 Create separate assembly for System.Linq compatibility classes
* 1548 Invalid Exception when engine is in a 32-bit process
* 1549 Changing default behavior for generating test case names
* 1551 Path in default .addins file for ConsoleRunner package may not exist
* 1555 EndsWith calls in Constraint constructor can cause major perf issues
* 1560 Engine writes setting file unnecessarily
* 1573 Move Nunit.Portable.Agent to new Repo
* 1579 NUnit v3 dangerously overrides COMPLUS_Version environment variable
* 1582 Mono 4.4.0 Causes Test Failures
* 1593 Nunit Console Runner 3.2.1 and Mono 4.4 throws RemotingException
* 1597 Move Portable agent to its own repository
* 1605 TeamCity package has no pre-release suffix
* 1607 nunit.nuget.addins discovery pattern is wrong then restored through project.json
* 1617 Load user profile on test runners
NUnit 3.2.1 - April 19, 2016
Framework
* The output and error files are now thread safe when running tests in parallel
* Added a .NET 3.5 build of the framework preventing conflicts with the compatiblity classes in the 2.0 framework
* Added a SingleThreadedAttribute to be added to a TestFixture to indicate all child tests should run on the same thread
Engine
* Unless required, run all tests within a fixture on the same thread
* Added an EventListener extension point
* Reduced memory usage
Console Runner
* No longer probes for newer versions of the engine, instead uses the engine that is included with the console
Issues Resolved
* 332 Add CF to the Appveyor CI build
* 640 Keep CF Build (and other future builds) in Sync
* 773 Upgrade Travis CI from Legacy Infrastructure
* 1141 Explicit Tests get run when using --where with some filters
* 1161 NUnit3-Console should disallow the combination of --inprocess and --x86, giving an error message
* 1208 Apartment on assembly level broken
* 1231 Build may silently fail some tests
* 1247 Potential memory issue
* 1266 SetCultureAttribute does not work if set on assembly level
* 1302 Create EventListener ExtensionPoint for the Engine
* 1317 Getting CF framework unit tests running on CI build
* 1318 NUnit console runner fails with error code -100
* 1327 TestCaseSource in NUnit 3 converts an argument declared as String[] to String
* 1329 Unable to build without Compact Framework
* 1333 Single Thread per Worker
* 1338 BUILDING.txt is outdated
* 1349 Collision on System.Func from nunit.framework with System.Core in .Net 3.5 (CS0433)
* 1352 Tests losing data setup on thread
* 1359 Compilation error in NUnitPortableDriverTests.cs
* 1383 Skip Silverlight build if SDK not installed
* 1386 Bug when using Assert.Equals() with types that explicitly implement IEquatable<T>
* 1390 --testlist with file with blank first line causes IndexOutOfRangeException
* 1399 Fixed NullReference issue introduced by the fix for #681
* 1405 ITestRunner.StopRun throws exception of type 'System.MissingMethodException'
* 1406 TextCapture is not threadsafe but is used to intercept calls that are expected to be threadsafe
* 1410 Make OutFile and ErrFile streamwriters synchronized
* 1413 Switch console to use a local engine
NUnit 3.2 - March 5, 2016
Framework
* Added an Order attribute that defines the order in which tests are run
* Added Assert.ThrowsAsync for testing if async methods throw an exception
* You can now compare unlike collections using Is.EquivalentTo().Using(...)
* Added the ability to add custom message formatters to MsgUtils
* TestCaseSourceAttribute now optionally takes an array of parameters that can be passed to the source method
* Added Is.Zero and Is.Not.Zero to the fluent syntax as a shorter option for Is.EqualTo(0) and Is.Not.EqualTo(0)
Engine
* Engine extensions can be installed via NuGet packages
Issues Resolved
* 170 Test Order Attribute
* 300 Create an NUnit Visual Studio Template
* 464 Async delegate assertions
* 532 Batch runner for Silverlight tests
* 533 Separate NUnitLite runner and autorunner
* 681 NUnit agent cannot resolve test dependency assemblies when mixed mode initialization runs in the default AppDomain
* 793 Replace CoreEngine by use of Extensions
* 907 Console report tests are too fragile
* 922 Wrap Console in NUnitLite
* 930 Switch from MSBuild based build system to Cake
* 981 Define NUnit Versioning for post-3.0 Development
* 1004 Poor formatting of results for Assert.AreEqual(DateTimeOffset, DateTimeOffset)
* 1018 ArgumentException when 2.x version of NUnit Framework is in the bin directory
* 1022 Support Comparing Unlike Collections using Is.EquivalentTo().Using(...)
* 1044 Re-order Test Summary Errors/Failures
* 1066 ApartmentAttribute and TestCaseAttribute(s) do not work together
* 1103 Can't use TestCaseData from base class
* 1109 NullReferenceException when using inherited property for ValueSource
* 1113 Console runner and xml output consistency
* 1117 Fix misbehaviour of Throws.Exception with non-void returning functions
* 1120 NUnitProject should parse .nunit project files containing Xml Declarations
* 1121 Usage of field set to null as value source leads to somewhat cryptic error
* 1122 Region may be disposed before test delegate is executed
* 1133 Provide a way to install extensions as nuget packages
* 1136 Don't allow V2 framework to update in V2 driver tests
* 1171 A bug when using Assert.That() with Is.Not.Empty
* 1185 Engine finds .NET 4.0 Client Profile twice
* 1187 ITestAssemblyRunner.StopRun as implemented by NUnitTestAssemblyRunner
* 1195 name attribute in test-suite and test-results element of output xml is different to nunit 2.6.4 using nunit2-format
* 1196 Custom value formatter for v3 via MsgUtils
* 1210 Available runtimes issues
* 1230 Add ability for testcasedatasource to have parameters passed to methods
* 1233 Add TestAssemblyRunner tests to both portable and silverlight builds
* 1234 Have default NUnitLite Runner Program.cs return exit code
* 1236 Make Appveyor NuGet feed more useable
* 1246 Introduce Is.Zero syntax to test for zero
* 1252 Exception thrown when any assembly is not found
* 1261 TypeHelper.GetDisplayName generates the wrong name for generic types with nested classes
* 1278 Fix optional parameters in TestCaseAttribute
* 1282 TestCase using Params Behaves Oddly
* 1283 Engine should expose available frameworks.
* 1286 value of the time attribute in nunit2 outputs depends on the machine culture
* 1297 NUnit.Engine nuget package improvements
* 1301 Assert.AreNotSame evaluates ToString unnecessarily
NUnit 3.0.1 - December 1, 2015
Console Runner
* The Nunit.Runners NuGet package was updated to become a meta-package that pulls in the NUnit.Console package
* 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
Issues Resolved
* 994 Add max number of Agents to the NUnit project file
* 1014 Ensure NUnit API assembly updates with MSI installs
* 1024 Added --pause flag to console runner
* 1030 Update Nunit.Runners package to 3.0
* 1033 "No arguments were provided" with Theory and Values combination
* 1035 Check null arguments
* 1037 Async tests not working on Windows 10 Universal
* 1041 NUnit2XmlResult Writer is reporting Sucess when test fails
* 1042 NUnit2 reports on 3.0 is different than 2.6.4
* 1046 FloatingPointNumerics.AreAlmostEqualUlps throws OverflowException
* 1049 Cannot select Generic tests from command line
* 1050 Do not expose System.Runtime.CompilerServices.ExtensionAttribute to public
* 1054 Create nuget feeds for CI builds on Appveyor
* 1055 nunit3 console runner --where option does not return error on invalid selection string
* 1060 Remove "Version 3" from NUnit Nuget Package
* 1061 Nunit30Settings.xml becomes corrupted
* 1062 Console.WriteLine statements in "OneTimeSetUp" and "OneTimeTearDown" annotated methods are not directed to the console when using nunit3-console.exe runner
* 1063 Error in Random Test
NUnit 3.0.0 Final Release - November 15, 2015
Issues Resolved
* 635 Mono 4.0 Support
NUnit 3.0.0 Release Candidate 3 - November 13, 2015
Engine
* 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.
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!
Issues Resolved
* 856 Extensions support for third party runners in NUnit 3.0
* 1003 Delete TeamCityEventHandler as it is not used
* 1015 Specifying .nunit project and --framework on command line causes crash
* 1017 Remove Assert.Multiple from framework
NUnit 3.0.0 Release Candidate 2 - November 8, 2015
Engine
* The IDriverFactory extensibility interface has been modified.
Issues Resolved
* 970 Define PARALLEL in CF build of nunitlite
* 978 It should be possible to determine version of NUnit using nunit console tool
* 983 Inconsistent return codes depending on ProcessModel
* 986 Update docs for parallel execution
* 988 Don't run portable tests from NUnit Console
* 990 V2 driver is passing invalid filter elements to NUnit
* 991 Mono.Options should not be exposed to public directly
* 993 Give error message when a regex filter is used with NUnit V2
* 997 Add missing XML Documentation
* 1008 NUnitLite namespace not updated in the NuGet Packages
NUnit 3.0.0 Release Candidate - November 1, 2015
Framework
* The portable build now supports ASP.NET 5 and the new Core CLR.
NOTE: The `nunit3-console` runner cannot run tests that reference the portable build.
You may run such tests using NUnitLite or a platform-specific runner.
* `TestCaseAttribute` and `TestCaseData` now allow modifying the test name without replacing it entirely.
* The Silverlight packages are now separate downloads.
NUnitLite
* The NUnitLite runner now produces the same output display and XML results as the console runner.
Engine
* The format of the XML result file has been finalized and documented.
Console Runner
* The console runner program is now called `nunit3-console`.
* Console runner output has been modified so that the summary comes at the end, to reduce the need for scrolling.
Issues Resolved
* 59 Length of generated test names should be limited
* 68 Customization of test case name generation
* 404 Split tests between nunitlite.runner and nunit.framework
* 575 Add support for ASP.NET 5 and the new Core CLR
* 783 Package separately for Silverlight
* 833 Intermittent failure of WorkItemQueueTests.StopQueue_WithWorkers
* 859 NUnit-Console output - move Test Run Summary to end
* 867 Remove Warnings from Ignored tests
* 868 Review skipped tests
* 887 Move environment and settings elements to the assembly suite in the result file
* 899 Colors for ColorConsole on grey background are too light
* 904 InternalPreserveStackTrace is not supported on all Portable platforms
* 914 Unclear error message from console runner when assembly has no tests
* 916 Console runner dies when test agent dies
* 918 Console runner --where parameter is case sensitive
* 920 Remove addins\nunit.engine.api.dll from NuGet package
* 929 Rename nunit-console.exe
* 931 Remove beta warnings from NuGet packages
* 936 Explicit skipped tests not displayed
* 939 Installer complains about .NET even if already installed
* 940 Confirm or modify list of packages for release
* 947 Breaking API change in ValueSourceAttribute
* 949 Update copyright in NUnit Console
* 954 NUnitLite XML output is not consistent with the engine's
* 955 NUnitLite does not display the where clause
* 959 Restore filter options for NUnitLite portable build
* 960 Intermittent failure of CategoryFilterTests
* 967 Run Settings Report is not being displayed.
NUnit 3.0.0 Beta 5 - October 16, 2015
Framework
* Parameterized test cases now support nullable arguments.
* 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.
Engine
* The engine now runs multiple test assemblies in parallel by default
* 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.
* Extensions may now specify data in an identifying attribute, for use by the engine in deciding whether to load that extension.
Console Runner
* The console now displays all settings used by the engine to run tests as well as the filter used to select tests.
* 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.
* 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.
* 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.
Issues Resolved
* 41 Check for zeroes in Assert messages
* 254 Finalize XML format for test results
* 275 NUnitEqualityComparer fails to compare IEquatable<T> where second object is derived from T
* 304 Run test Assemblies in parallel
* 374 New syntax for selecting tests to be run
* 515 OSPlatform.IsMacOSX doesn't work
* 573 nunit-console hangs on Mac OS X after all tests have run
* 669 TeamCity service message should have assembly name as a part of test name.
* 689 The TeamCity service message "testFinished" should have an integer value in the "duration" attribute
* 713 Include command information in XML
* 719 We have no way to configure tests for several assemblies using NUnit project file and the common installation from msi file
* 735 Workers number in xml report file cannot be found
* 784 Build Portable Framework on Linux
* 790 Allow Extensions to provide data through an attribute
* 794 Make it easier to debug tests as well as NUnit itself
* 801 NUnit calls Dispose multiple times
* 814 Support nullable types with TestCase
* 818 Possible error in Merge Pull Request #797
* 821 Wrapped method results in loss of result information
* 822 Test for Debugger in NUnitTestAssemblyRunner probably should not be in CF build
* 824 Remove unused System.Reflection using statements
* 826 Randomizer uniqueness tests fail randomly!
* 828 Merge pull request #827 (issue 826)
* 830 Add ability to report test results synchronously to test runners
* 837 Enumerators not disposed when comparing IEnumerables
* 840 Add missing copyright notices
* 844 Pull Request #835 (Issue #814) does not build in CF
* 847 Add new --process:inprocess and --inprocess options
* 850 Test runner fails if test name contains invalid xml characters
* 851 'Exclude' console option is not working in NUnit Lite
* 853 Cannot run NUnit Console from another directory
* 860 Use CDATA section for message, stack-trace and output elements of XML
* 863 Eliminate core engine
* 865 Intermittent failures of StopWatchTests
* 869 Tests that use directory separator char to determine platform misreport Linux on MaxOSX
* 870 NUnit Console Runtime Environment misreports on MacOSX
* 874 Add .NET Core Framework
* 878 Cannot exclude MacOSX or XBox platforms when running on CF
* 892 Fixed test runner returning early when executing more than one test run.
* 894 Give nunit.engine and nunit.engine.api assemblies strong names
* 896 NUnit 3.0 console runner not placing test result xml in --work directory
NUnit 3.0.0 Beta 4 - August 25, 2015
Framework
* A new RetryAttribute allows retrying of failing tests.
* New SupersetConstraint and Is.SupersetOf syntax complement SubsetConstraint.
* Tests skipped due to ExplicitAttribute are now reported as skipped.
Engine
* We now use Cecil to examine assemblies prior to loading them.
* Extensions are no longer based on Mono.Addins but use our own extension framework.
Issues Resolved
* 125 3rd-party dependencies should be downloaded on demand
* 283 What should we do when a user extension does something bad?
* 585 RetryAttribute
* 642 Restructure MSBuild script
* 649 Change how we zip packages
* 654 ReflectionOnlyLoad and ReflectionOnlyLoadFrom
* 664 Invalid "id" attribute in the report for case "test started"
* 685 In the some cases when tests cannot be started NUnit returns exit code "0"
* 728 Missing Assert.That overload
* 741 Explicit Tests get run when using --exclude
* 746 Framework should send events for all tests
* 747 NUnit should apply attributes even if test is non-runnable
* 749 Review Use of Mono.Addins for Engine Extensibility
* 750 Include Explicit Tests in Test Results
* 753 Feature request: Is.SupersetOf() assertion constraint
* 755 TimeOut attribute doesn't work with TestCaseSource Attribute
* 757 Implement some way to wait for execution to complete in ITestEngineRunner
* 760 Packaging targets do not run on Linux
* 766 Added overloads for True()/False() accepting booleans
* 778 Build and build.cmd scripts invoke nuget.exe improperly
* 780 Teamcity fix
* 782 No sources for 2.6.4
NUnit 3.0.0 Beta 3 - July 15, 2015
Framework
* The RangeAttribute has been extended to support more data types including
uint, long and ulong
* Added platform support for Windows 10 and fixed issues with Windows 8 and
8.1 support
* Added async support to the portable version of NUnit Framework
* The named members of the TestCaseSource and ValueSource attributes must now be
static.
* RandomAttribute has been extended to add support for new data types including
uint, long, ulong, short, ushort, float, byte and sbyte
* TestContext.Random has also been extended to add support for new data types including
uint, long, ulong, short, ushort, float, byte, sbyte and decimal
* Removed the dependency on Microsoft.Bcl.Async from the NUnit Framework assembly
targeting .NET 4.0. If you want to write async tests in .NET 4.0, you will need
to reference the NuGet package yourself.
* Added a new TestFixtureSource attribute which is the equivalent to TestCaseSource
but provides for instantiation of fixtures.
* Significant improvements have been made in how NUnit deduces the type arguments of
generic methods based on the arguments provided.
Engine
* If the target framework is not specified, test assemblies that are compiled
to target .NET 4.5 will no longer run in .NET 4.0 compatibility mode
Console
* If the console is run without arguments, it will now display help
Issues Resolved
* 47 Extensions to RangeAttribute
* 237 System.Uri .ctor works not properly under Nunit
* 244 NUnit should properly distinguish between .NET 4.0 and 4.5
* 310 Target framework not specified on the AppDomain when running against .Net 4.5
* 321 Rationalize how we count tests
* 472 Overflow exception and DivideByZero exception from the RangeAttribute
* 524 int and char do not compare correctly?
* 539 Truncation of string arguments
* 544 AsyncTestMethodTests for 4.5 Framework fails frequently on Travis CI
* 656 Unused parameter in Console.WriteLine found
* 670 Failing Tests in TeamCity Build
* 673 Ensure proper disposal of engine objects
* 674 Engine does not release test assemblies
* 679 Windows 10 Support
* 682 Add Async Support to Portable Framework
* 683 Make FrameworkController available in portable build
* 687 TestAgency does not launch agent process correctly if runtime type is not specified (i.e. v4.0)
* 692 PlatformAttribute_OperatingSystemBitNess fails when running in 32-bit process
* 693 Generic Test<T> Method cannot determine type arguments for fixture when passed as IEnumerable<T>
* 698 Require TestCaseSource and ValueSource named members to be static
* 703 TeamCity non-equal flowid for 'testStarted' and 'testFinished' messages
* 712 Extensions to RandomAttribute
* 715 Provide a data source attribute at TestFixture Level
* 718 RangeConstraint gives error with from and two args of differing types
* 723 Does nunit.nuspec require dependency on Microsoft.Bcl.Async?
* 724 Adds support for Nullable<bool> to Assert.IsTrue and Assert.IsFalse
* 734 Console without parameters doesn't show help
NUnit 3.0.0 Beta 2 - May 12, 2015
Framework
* The Compact Framework version of the framework is now packaged separately
and will be distributed as a ZIP file and as a NuGet package.
* The NUnit 2.x RepeatAttribute was added back into the framework.
* Added Throws.ArgumentNullException
* Added GetString methods to NUnit.Framework.Internal.RandomGenerator to
create repeatable random strings for testing
* When checking the equality of DateTimeOffset, you can now use the
WithSameOffset modifier
* Some classes intended for internal usage that were public for testing
have now been made internal. Additional classes will be made internal
for the final 3.0 release.
Engine
* Added a core engine which is a non-extensible, minimal engine for use by
devices and similar situations where reduced functionality is compensated
for by reduced size and simplicity of usage. See
https://github.com/nunit/dev/wiki/Core-Engine for more information.
Issues Resolved
* 22 Add OSArchitecture Attribute to Environment node in result xml
* 24 Assert on Dictionary Content
* 48 Explicit seems to conflict with Ignore
* 168 Create NUnit 3.0 documentation
* 196 Compare DateTimeOffsets including the offset in the comparison
* 217 New icon for the 3.0 release
* 316 NUnitLite TextUI Runner
* 320 No Tests found: Using parametrized Fixture and TestCaseSource
* 360 Better exception message when using non-BCL class in property
* 454 Rare registry configurations may cause NUnit to fail
* 478 RepeatAttribute
* 481 Testing multiple assemblies in nunitlite
* 538 Potential bug using TestContext in constructors
* 546 Enable Parallel in NUnitLite/CF (or more) builds
* 551 TextRunner not passing the NumWorkers option to the ITestAssemblyRunner
* 556 Executed tests should always return a non-zero duration
* 559 Fix text of NuGet packages
* 560 Fix PackageVersion property on wix install projects
* 562 Program.cs in NUnitLite NuGet package is incorrect
* 564 NUnitLite Nuget package is Beta 1a, Framework is Beta 1
* 565 NUnitLite Nuget package adds Program.cs to a VB Project
* 568 Isolate packaging from building
* 570 ThrowsConstraint failure message should include stack trace of actual exception
* 576 Throws.ArgumentNullException would be nice
* 577 Documentation on some members of Throws falsely claims that they return `TargetInvocationException` constraints
* 579 No documentation for recommended usage of TestCaseSourceAttribute
* 580 TeamCity Service Message Uses Incorrect Test Name with NUnit2Driver
* 582 Test Ids Are Not Unique
* 583 TeamCity service messages to support parallel test execution
* 584 Non-runnable assembly has incorrect ResultState
* 609 Add support for integration with TeamCity
* 611 Remove unused --teamcity option from CF build of NUnitLite
* 612 MaxTime doesn't work when used for TestCase
* 621 Core Engine
* 622 nunit-console fails when use --output
* 628 Modify IService interface and simplify ServiceContext
* 631 Separate packaging for the compact framework
* 646 ConfigurationManager.AppSettings Params Return Null under Beta 1
* 648 Passing 2 or more test assemblies targeting > .NET 2.0 to nunit-console fails
NUnit 3.0.0 Beta 1 - March 25, 2015
General
* There is now a master windows installer for the framework, engine and console runner.
Framework
* We no longer create a separate framework build for .NET 3.5. The 2.0 and
3.5 builds were essentially the same, so the former should now be used
under both runtimes.
* A new Constraint, DictionaryContainsKeyConstraint, may be used to test
that a specified key is present in a dictionary.
* LevelOfParallelizationAttribute has been renamed to LevelOfParallelismAttribute.
* The Silverlight runner now displays output in color and includes any
text output created by the tests.
* The class and method names of each test are included in the output xml
where applicable.
* String arguments used in test case names are now truncated to 40 rather
than 20 characters.
Engine
* The engine API has now been finalized. It permits specifying a minimum
version of the engine that a runner is able to use. The best installed
version of the engine will be loaded. Third-party runners may override
the selection process by including a copy of the engine in their
installation directory and specifying that it must be used.
* The V2 framework driver now uses the event listener and test listener
passed to it by the runner. This corrects several outstanding issues
caused by events not being received and allows selecting V2 tests to
be run from the command-line, in the same way that V3 tests are selected.
Console
* The console now defaults to not using shadowcopy. There is a new option
--shadowcopy to turn it on if needed.
Issues Resolved
* 224 Silverlight Support
* 318 TestActionAttribute: Retrieving the TestFixture
* 428 Add ExpectedExceptionAttribute to C# samples
* 440 Automatic selection of Test Engine to use
* 450 Create master install that includes the framework, engine and console installs
* 477 Assert does not work with ArraySegment
* 482 nunit-console has multiple errors related to -framework option
* 483 Adds constraint for asserting that a dictionary contains a particular key
* 484 Missing file in NUnit.Console nuget package
* 485 Can't run v2 tests with nunit-console 3.0
* 487 NUnitLite can't load assemblies by their file name
* 488 Async setup and teardown still don't work
* 497 Framework installer shold register the portable framework
* 504 Option --workers:0 is ignored
* 508 Travis builds with failure in engine tests show as successful
* 509 Under linux, not all mono profiles are listed as available
* 512 Drop the .NET 3.5 build
* 517 V2 FrameworkDriver does not make use of passed in TestEventListener
* 523 Provide an option to disable shadowcopy in NUnit v3
* 528 V2 FrameworkDriver does not make use of passed in TestFilter
* 530 Color display for Silverlight runner
* 531 Display text output from tests in Silverlight runner
* 534 Add classname and methodname to test result xml
* 541 Console help doesn't indicate defaults
NUnit 3.0.0 Alpha 5 - January 30, 2015
General
* A Windows installer is now included in the release packages.
Framework
* 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.
* TestFixture and TestCase attributes now enforce the requirement that a reason needs to be provided when ignoring a test.
* SetUp, TearDown, OneTimeSetUp and OneTimeTearDown methods may now be async.
* String arguments over 20 characters in length are truncated when used as part of a test name.
Engine
* 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:
* A FrameworkDriver that allows running NUnit V2 tests under NUnit 3.0.
* ProjectLoaders for NUnit and Visual Studio projects.
* An OutputWriter that creates XML output in NUnit V2 format.
* DomainUsage now defaults to Multiple if not specified by the runner
Console
* New options supported:
* --testlist provides a list of tests to run in a file
* --stoponerror indicates that the run should terminate when any test fails.
Issues Resolved
* 20 TestCaseAttribute needs Platform property.
* 60 NUnit should support async setup, teardown, fixture setup and fixture teardown.
* 257 TestCaseAttribute should not require parameters with default values to be specified.
* 266 Pluggable framework drivers.
* 368 Create addin model.
* 369 Project loader addins
* 370 OutputWriter addins
* 403 Move ConsoleOptions.cs and Options.cs to Common and share...
* 419 Create Windows Installer for NUnit.
* 427 [TestFixture(Ignore=true)] should not be allowed.
* 437 Errors in tests under Linux due to hard-coded paths.
* 441 NUnit-Console should support --testlist option
* 442 Add --stoponerror option back to nunit-console.
* 456 Fix memory leak in RuntimeFramework.
* 459 Remove the Mixed Platforms build configuration.
* 468 Change default domain usage to multiple.
* 469 Truncate string arguments in test names in order to limit the length.
NUnit 3.0.0 Alpha 4 - December 30, 2014
Framework
* ApartmentAttribute has been added, replacing STAAttribute and MTAAttribute.
* Unnecessary overloads of Assert.That and Assume.That have been removed.
* Multiple SetUpFixtures may be specified in a single namespace.
* Improvements to the Pairwise strategy test case generation algorithm.
* The new NUnitLite runner --testlist option, allows a list of tests to be kept in a file.
Engine
* A driver is now included, which allows running NUnit 2.x tests under NUnit 3.0.
* The engine can now load and run tests specified in a number of project formats:
* NUnit (.nunit)
* Visual Studio C# projects (.csproj)
* Visual Studio F# projects (.vjsproj)
* Visual Studio Visual Basic projects (.vbproj)
* Visual Studio solutions (.sln)
* Legacy C++ and Visual JScript projects (.csproj and .vjsproj) are also supported
* Support for the current C++ format (.csxproj) is not yet available
* Creation of output files like TestResult.xml in various formats is now a
service of the engine, available to any runner.
Console
* The command-line may now include any number of assemblies and/or supported projects.
Issues Resolved
* 37 Multiple SetUpFixtures should be permitted on same namespace
* 210 TestContext.WriteLine in an AppDomain causes an error
* 227 Add support for VS projects and solutions
* 231 Update C# samples to use NUnit 3.0
* 233 Update F# samples to use NUnit 3.0
* 234 Update C++ samples to use NUnit 3.0
* 265 Reorganize console reports for nunit-console and nunitlite
* 299 No full path to assembly in XML file under Compact Framework
* 301 Command-line length
* 363 Make Xml result output an engine service
* 377 CombiningStrategyAttributes don't work correctly on generic methods
* 388 Improvements to NUnitLite runner output
* 390 Specify exactly what happens when a test times out
* 396 ApartmentAttribute
* 397 CF nunitlite runner assembly has the wrong name