From adcd0c95376075a0b4f18f4844e1c596fd36816a Mon Sep 17 00:00:00 2001 From: Alexander Zaytsev Date: Sat, 11 Feb 2017 13:42:52 +1300 Subject: [PATCH 1/7] NH-3900 - Replace Assert.IsNullOrEmpty and Assert.IsNotNullOrEmpty to fluent syntax as it will be removed in NUnit 3.6.0 --- src/NHibernate.Test/Linq/DynamicQueryTests.cs | 2 +- src/NHibernate.Test/NHSpecificTest/NH2420/Fixture.cs | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/NHibernate.Test/Linq/DynamicQueryTests.cs b/src/NHibernate.Test/Linq/DynamicQueryTests.cs index 46425ce216e..9943f23d23d 100644 --- a/src/NHibernate.Test/Linq/DynamicQueryTests.cs +++ b/src/NHibernate.Test/Linq/DynamicQueryTests.cs @@ -34,7 +34,7 @@ public void CanCahceDynamicLinq() using (var log = new SqlLogSpy()) { users.ToList(); - Assert.IsNullOrEmpty(log.GetWholeLog()); + Assert.That(log.GetWholeLog(), Is.Null.Or.Empty); } } } diff --git a/src/NHibernate.Test/NHSpecificTest/NH2420/Fixture.cs b/src/NHibernate.Test/NHSpecificTest/NH2420/Fixture.cs index fe575df876b..57568e4024a 100644 --- a/src/NHibernate.Test/NHSpecificTest/NH2420/Fixture.cs +++ b/src/NHibernate.Test/NHSpecificTest/NH2420/Fixture.cs @@ -31,16 +31,16 @@ private string FetchConnectionStringFromConfiguration() string connectionString; if (cfg.Properties.TryGetValue(Environment.ConnectionString, out connectionString)) { - Assert.IsNotNullOrEmpty(connectionString); + Assert.That(connectionString, Is.Not.Null.Or.Empty); return connectionString; } string connectionStringName; if (cfg.Properties.TryGetValue(Environment.ConnectionStringName, out connectionStringName)) { var connectionStringSettings = ConfigurationManager.ConnectionStrings[connectionStringName]; - Assert.IsNotNull(connectionStringSettings); + Assert.That(connectionStringSettings, Is.Not.Null); connectionString = connectionStringSettings.ConnectionString; - Assert.IsNotNullOrEmpty(connectionString); + Assert.That(connectionString, Is.Not.Null.Or.Empty); return connectionString; } else From 57803f692fab0ae289f9dd72a56e0f6cea6d56d8 Mon Sep 17 00:00:00 2001 From: Alexander Zaytsev Date: Sat, 11 Feb 2017 14:10:15 +1300 Subject: [PATCH 2/7] NH-3900 - Install NUnit.Console NuGet package --- Tools/.gitignore | 1 + Tools/packages.config | 10 ++++++++++ build-common/common-project.xml | 3 +++ 3 files changed, 14 insertions(+) create mode 100644 Tools/packages.config diff --git a/Tools/.gitignore b/Tools/.gitignore index aaf208d49ac..8ebf927cc77 100644 --- a/Tools/.gitignore +++ b/Tools/.gitignore @@ -1 +1,2 @@ nuget.exe +NUnit.* diff --git a/Tools/packages.config b/Tools/packages.config new file mode 100644 index 00000000000..49fb637eba4 --- /dev/null +++ b/Tools/packages.config @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/build-common/common-project.xml b/build-common/common-project.xml index 1720ff07972..706bb44c5f4 100644 --- a/build-common/common-project.xml +++ b/build-common/common-project.xml @@ -57,6 +57,9 @@ + + + From 0c7fbea25a938ebaf2d68d60e7f4d0ac45f0719c Mon Sep 17 00:00:00 2001 From: Nathan Brown Date: Sat, 27 Aug 2016 13:09:50 -0700 Subject: [PATCH 3/7] NH-3900 - Run NUnit console from ShowBuildMenu. --- ShowBuildMenu.bat | 4 ++-- src/NHibernate.sln.DotSettings | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/ShowBuildMenu.bat b/ShowBuildMenu.bat index e859d4c304d..8f5faa1007f 100644 --- a/ShowBuildMenu.bat +++ b/ShowBuildMenu.bat @@ -5,7 +5,7 @@ set NANT="%~dp0Tools\nant\bin\NAnt.exe" -t:net-4.0 set BUILDTOOL="%~dp0Tools\BuildTool\bin\Release\BuildTool.exe" set AVAILABLE_CONFIGURATIONS=%~dp0available-test-configurations set CURRENT_CONFIGURATION=%~dp0current-test-configuration -set NUNIT="%~dp0Tools\nunit\nunit-x86.exe" +set NUNIT="%~dp0Tools\NUnit.ConsoleRunner.3.6.0\tools\nunit3-console.exe" :main-menu echo ========================= NHIBERNATE BUILD MENU ========================== @@ -161,7 +161,7 @@ echo Configuration activated. goto main-menu :test-run -start "" %NUNIT% NHibernate.nunit +start "nunit3-console" cmd /K %NUNIT% --x86 --agents=1 --process=separate NHibernate.nunit goto main-menu rem :build-test diff --git a/src/NHibernate.sln.DotSettings b/src/NHibernate.sln.DotSettings index 0bf3bfc0403..918ecb514b5 100644 --- a/src/NHibernate.sln.DotSettings +++ b/src/NHibernate.sln.DotSettings @@ -22,6 +22,7 @@ True True True + True True NUnit Assert.NotNull True From d749b410d445de73931b6fcd0a6b3dcb31ba9851 Mon Sep 17 00:00:00 2001 From: Nathan Brown Date: Sun, 11 Sep 2016 17:59:24 -0700 Subject: [PATCH 4/7] NH-3900 - Update NAnt build configuration to use NUnit 3 console runner. --- build-common/common-project.xml | 18 +++++------------- build-common/common.xml | 2 +- teamcity.build | 19 ++++++------------- 3 files changed, 12 insertions(+), 27 deletions(-) diff --git a/build-common/common-project.xml b/build-common/common-project.xml index 706bb44c5f4..e51353f4233 100644 --- a/build-common/common-project.xml +++ b/build-common/common-project.xml @@ -118,22 +118,14 @@ description="Run NUnit tests"> + + + + - + - - - + diff --git a/teamcity.build b/teamcity.build index 42c321601b0..7d1c79552fa 100644 --- a/teamcity.build +++ b/teamcity.build @@ -12,17 +12,7 @@ - - - - - - - - - - - + @@ -81,6 +71,7 @@ + @@ -109,8 +100,7 @@ - - + @@ -136,6 +126,7 @@ + @@ -179,6 +170,7 @@ + @@ -210,6 +202,7 @@ + From 7ea341740a8981d21c72d94ea9570031ded3564d Mon Sep 17 00:00:00 2001 From: Alexander Zaytsev Date: Sat, 11 Feb 2017 15:12:20 +1300 Subject: [PATCH 5/7] NH-3900 - Remove old NUnit 2 runner --- Tools/nunit/NUnitFitTests.html | 277 - Tools/nunit/NUnitTests.config | 45 - Tools/nunit/NUnitTests.nunit | 14 - Tools/nunit/agent.conf | 4 - Tools/nunit/agent.log.conf | 18 - Tools/nunit/framework/nunit.framework.dll | Bin 147456 -> 0 bytes Tools/nunit/framework/nunit.framework.xml | 10892 ---------------- Tools/nunit/framework/nunit.mocks.dll | Bin 11264 -> 0 bytes Tools/nunit/framework/pnunit.framework.dll | Bin 9728 -> 0 bytes Tools/nunit/launcher.log.conf | 18 - Tools/nunit/lib/Failure.png | Bin 1445 -> 0 bytes Tools/nunit/lib/Ignored.png | Bin 1444 -> 0 bytes Tools/nunit/lib/Images/Ellipsis.gif | Bin 101 -> 0 bytes .../nunit/lib/Images/Tree/Circles/Failure.jpg | Bin 761 -> 0 bytes .../nunit/lib/Images/Tree/Circles/Ignored.jpg | Bin 688 -> 0 bytes .../lib/Images/Tree/Circles/Inconclusive.jpg | Bin 734 -> 0 bytes .../nunit/lib/Images/Tree/Circles/Skipped.jpg | Bin 689 -> 0 bytes .../nunit/lib/Images/Tree/Circles/Success.jpg | Bin 731 -> 0 bytes .../nunit/lib/Images/Tree/Classic/Failure.jpg | Bin 808 -> 0 bytes .../nunit/lib/Images/Tree/Classic/Ignored.jpg | Bin 789 -> 0 bytes .../lib/Images/Tree/Classic/Inconclusive.jpg | Bin 784 -> 0 bytes .../nunit/lib/Images/Tree/Classic/Skipped.jpg | Bin 689 -> 0 bytes .../nunit/lib/Images/Tree/Classic/Success.jpg | Bin 768 -> 0 bytes .../nunit/lib/Images/Tree/Default/Failure.png | Bin 1445 -> 0 bytes .../nunit/lib/Images/Tree/Default/Ignored.png | Bin 592 -> 0 bytes .../lib/Images/Tree/Default/Inconclusive.png | Bin 1436 -> 0 bytes .../nunit/lib/Images/Tree/Default/Skipped.png | Bin 1405 -> 0 bytes .../nunit/lib/Images/Tree/Default/Success.png | Bin 1439 -> 0 bytes .../lib/Images/Tree/Visual Studio/Failure.png | Bin 747 -> 0 bytes .../lib/Images/Tree/Visual Studio/Ignored.png | Bin 773 -> 0 bytes .../Tree/Visual Studio/Inconclusive.png | Bin 782 -> 0 bytes .../Tree/Visual Studio/SeriousWarning.png | Bin 687 -> 0 bytes .../lib/Images/Tree/Visual Studio/Skipped.png | Bin 1405 -> 0 bytes .../lib/Images/Tree/Visual Studio/Success.png | Bin 3386 -> 0 bytes Tools/nunit/lib/Images/pinned.gif | Bin 885 -> 0 bytes Tools/nunit/lib/Images/unpinned.gif | Bin 881 -> 0 bytes Tools/nunit/lib/Inconclusive.png | Bin 1436 -> 0 bytes Tools/nunit/lib/NSubstitute.dll | Bin 1016832 -> 0 bytes Tools/nunit/lib/NSubstitute.xml | 259 - Tools/nunit/lib/Rhino.Mocks.dll | Bin 315904 -> 0 bytes Tools/nunit/lib/Rhino.Mocks.xml | 5413 -------- Tools/nunit/lib/Skipped.png | Bin 1405 -> 0 bytes Tools/nunit/lib/Success.png | Bin 1439 -> 0 bytes Tools/nunit/lib/fit.dll | Bin 49152 -> 0 bytes Tools/nunit/lib/log4net.dll | Bin 258048 -> 0 bytes Tools/nunit/lib/nunit-console-runner.dll | Bin 36864 -> 0 bytes Tools/nunit/lib/nunit-gui-runner.dll | Bin 155648 -> 0 bytes Tools/nunit/lib/nunit.core.dll | Bin 147456 -> 0 bytes Tools/nunit/lib/nunit.core.interfaces.dll | Bin 57344 -> 0 bytes Tools/nunit/lib/nunit.fixtures.dll | Bin 9728 -> 0 bytes Tools/nunit/lib/nunit.uiexception.dll | Bin 90112 -> 0 bytes Tools/nunit/lib/nunit.uikit.dll | Bin 241664 -> 0 bytes Tools/nunit/lib/nunit.util.dll | Bin 135168 -> 0 bytes Tools/nunit/nunit-agent-x86.exe | Bin 8192 -> 0 bytes Tools/nunit/nunit-agent-x86.exe.config | 37 - Tools/nunit/nunit-agent.exe | Bin 8192 -> 0 bytes Tools/nunit/nunit-agent.exe.config | 37 - Tools/nunit/nunit-console-x86.exe | Bin 5120 -> 0 bytes Tools/nunit/nunit-console-x86.exe.config | 31 - Tools/nunit/nunit-console.exe | Bin 5120 -> 0 bytes Tools/nunit/nunit-console.exe.config | 31 - Tools/nunit/nunit-editor.exe | Bin 143360 -> 0 bytes Tools/nunit/nunit-x86.exe | Bin 6656 -> 0 bytes Tools/nunit/nunit-x86.exe.config | 30 - Tools/nunit/nunit.exe | Bin 6656 -> 0 bytes Tools/nunit/nunit.exe.config | 30 - Tools/nunit/nunit.framework.dll | Bin 147456 -> 0 bytes Tools/nunit/pnunit-agent.exe | Bin 32768 -> 0 bytes Tools/nunit/pnunit-agent.exe.config | 77 - Tools/nunit/pnunit-launcher.exe | Bin 36864 -> 0 bytes Tools/nunit/pnunit-launcher.exe.config | 77 - Tools/nunit/pnunit.framework.dll | Bin 9728 -> 0 bytes Tools/nunit/pnunit.tests.dll | Bin 8192 -> 0 bytes Tools/nunit/runFile.exe | Bin 3072 -> 0 bytes Tools/nunit/runFile.exe.config | 43 - Tools/nunit/runpnunit.bat | 3 - Tools/nunit/test.conf | 82 - 77 files changed, 17418 deletions(-) delete mode 100644 Tools/nunit/NUnitFitTests.html delete mode 100644 Tools/nunit/NUnitTests.config delete mode 100644 Tools/nunit/NUnitTests.nunit delete mode 100644 Tools/nunit/agent.conf delete mode 100644 Tools/nunit/agent.log.conf delete mode 100644 Tools/nunit/framework/nunit.framework.dll delete mode 100644 Tools/nunit/framework/nunit.framework.xml delete mode 100644 Tools/nunit/framework/nunit.mocks.dll delete mode 100644 Tools/nunit/framework/pnunit.framework.dll delete mode 100644 Tools/nunit/launcher.log.conf delete mode 100644 Tools/nunit/lib/Failure.png delete mode 100644 Tools/nunit/lib/Ignored.png delete mode 100644 Tools/nunit/lib/Images/Ellipsis.gif delete mode 100644 Tools/nunit/lib/Images/Tree/Circles/Failure.jpg delete mode 100644 Tools/nunit/lib/Images/Tree/Circles/Ignored.jpg delete mode 100644 Tools/nunit/lib/Images/Tree/Circles/Inconclusive.jpg delete mode 100644 Tools/nunit/lib/Images/Tree/Circles/Skipped.jpg delete mode 100644 Tools/nunit/lib/Images/Tree/Circles/Success.jpg delete mode 100644 Tools/nunit/lib/Images/Tree/Classic/Failure.jpg delete mode 100644 Tools/nunit/lib/Images/Tree/Classic/Ignored.jpg delete mode 100644 Tools/nunit/lib/Images/Tree/Classic/Inconclusive.jpg delete mode 100644 Tools/nunit/lib/Images/Tree/Classic/Skipped.jpg delete mode 100644 Tools/nunit/lib/Images/Tree/Classic/Success.jpg delete mode 100644 Tools/nunit/lib/Images/Tree/Default/Failure.png delete mode 100644 Tools/nunit/lib/Images/Tree/Default/Ignored.png delete mode 100644 Tools/nunit/lib/Images/Tree/Default/Inconclusive.png delete mode 100644 Tools/nunit/lib/Images/Tree/Default/Skipped.png delete mode 100644 Tools/nunit/lib/Images/Tree/Default/Success.png delete mode 100644 Tools/nunit/lib/Images/Tree/Visual Studio/Failure.png delete mode 100644 Tools/nunit/lib/Images/Tree/Visual Studio/Ignored.png delete mode 100644 Tools/nunit/lib/Images/Tree/Visual Studio/Inconclusive.png delete mode 100644 Tools/nunit/lib/Images/Tree/Visual Studio/SeriousWarning.png delete mode 100644 Tools/nunit/lib/Images/Tree/Visual Studio/Skipped.png delete mode 100644 Tools/nunit/lib/Images/Tree/Visual Studio/Success.png delete mode 100644 Tools/nunit/lib/Images/pinned.gif delete mode 100644 Tools/nunit/lib/Images/unpinned.gif delete mode 100644 Tools/nunit/lib/Inconclusive.png delete mode 100644 Tools/nunit/lib/NSubstitute.dll delete mode 100644 Tools/nunit/lib/NSubstitute.xml delete mode 100644 Tools/nunit/lib/Rhino.Mocks.dll delete mode 100644 Tools/nunit/lib/Rhino.Mocks.xml delete mode 100644 Tools/nunit/lib/Skipped.png delete mode 100644 Tools/nunit/lib/Success.png delete mode 100644 Tools/nunit/lib/fit.dll delete mode 100644 Tools/nunit/lib/log4net.dll delete mode 100644 Tools/nunit/lib/nunit-console-runner.dll delete mode 100644 Tools/nunit/lib/nunit-gui-runner.dll delete mode 100644 Tools/nunit/lib/nunit.core.dll delete mode 100644 Tools/nunit/lib/nunit.core.interfaces.dll delete mode 100644 Tools/nunit/lib/nunit.fixtures.dll delete mode 100644 Tools/nunit/lib/nunit.uiexception.dll delete mode 100644 Tools/nunit/lib/nunit.uikit.dll delete mode 100644 Tools/nunit/lib/nunit.util.dll delete mode 100644 Tools/nunit/nunit-agent-x86.exe delete mode 100644 Tools/nunit/nunit-agent-x86.exe.config delete mode 100644 Tools/nunit/nunit-agent.exe delete mode 100644 Tools/nunit/nunit-agent.exe.config delete mode 100644 Tools/nunit/nunit-console-x86.exe delete mode 100644 Tools/nunit/nunit-console-x86.exe.config delete mode 100644 Tools/nunit/nunit-console.exe delete mode 100644 Tools/nunit/nunit-console.exe.config delete mode 100644 Tools/nunit/nunit-editor.exe delete mode 100644 Tools/nunit/nunit-x86.exe delete mode 100644 Tools/nunit/nunit-x86.exe.config delete mode 100644 Tools/nunit/nunit.exe delete mode 100644 Tools/nunit/nunit.exe.config delete mode 100644 Tools/nunit/nunit.framework.dll delete mode 100644 Tools/nunit/pnunit-agent.exe delete mode 100644 Tools/nunit/pnunit-agent.exe.config delete mode 100644 Tools/nunit/pnunit-launcher.exe delete mode 100644 Tools/nunit/pnunit-launcher.exe.config delete mode 100644 Tools/nunit/pnunit.framework.dll delete mode 100644 Tools/nunit/pnunit.tests.dll delete mode 100644 Tools/nunit/runFile.exe delete mode 100644 Tools/nunit/runFile.exe.config delete mode 100644 Tools/nunit/runpnunit.bat delete mode 100644 Tools/nunit/test.conf diff --git a/Tools/nunit/NUnitFitTests.html b/Tools/nunit/NUnitFitTests.html deleted file mode 100644 index ca5cd4ff70d..00000000000 --- a/Tools/nunit/NUnitFitTests.html +++ /dev/null @@ -1,277 +0,0 @@ - - - -

NUnit Acceptance Tests

-

- Developers love self-referential programs! Hence, NUnit has always run all it's - own tests, even those that are not really unit tests. -

Now, beginning with NUnit 2.4, NUnit has top-level tests using Ward Cunningham's - FIT framework. At this time, the tests are pretty rudimentary, but it's a start - and it's a framework for doing more. -

Running the Tests

-

Open a console or shell window and navigate to the NUnit bin directory, which - contains this file. To run the test under Microsoft .Net, enter the command -

    runFile NUnitFitTests.html TestResults.html .
- To run it under Mono, enter -
    mono runFile.exe NUnitFitTests.html TestResults.html .
- Note the space and dot at the end of each command. The results of your test - will be in TestResults.html in the same directory. -

Platform and CLR Version

- - - - -
NUnit.Fixtures.PlatformInfo
-

Verify Unit Tests

-

- Load and run the NUnit unit tests, verifying that the results are as expected. - When these tests are run on different platforms, different numbers of tests may - be skipped, so the values for Skipped and Run tests are informational only. -

- The number of tests in each assembly should be constant across all platforms - - any discrepancy usually means that one of the test source files was not - compiled on the platform. There should be no failures and no tests ignored. -

Note: - At the moment, the nunit.extensions.tests assembly is failing because the - fixture doesn't initialize addins in the test domain. -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NUnit.Fixtures.AssemblyRunner
AssemblyTests()Run()Skipped()Ignored()Failures()
nunit.framework.tests.dll397  00
nunit.core.tests.dll355  00
nunit.util.tests.dll238  00
nunit.mocks.tests.dll43  00
nunit.extensions.tests.dll5  00
nunit-console.tests.dll40  00
nunit.uikit.tests.dll34  00
nunit-gui.tests.dll15  00
nunit.fixtures.tests.dll6  00
-

Code Snippet Tests

-

- These tests create a test assembly from a snippet of code and then load and run - the tests that it contains, verifying that the structure of the loaded tests is - as expected and that the number of tests run, skipped, ignored or failed is - correct. -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NUnit.Fixtures.SnippetRunner
CodeTree()Run()Skipped()Ignored()Failures()
public class TestClass
-{
-}
-
EMPTY0000
using NUnit.Framework;
-
-[TestFixture]
-public class TestClass
-{
-}
-
TestClass0000
using NUnit.Framework;
-
-[TestFixture]
-public class TestClass
-{
-    [Test]
-    public void T1() { }
-    [Test]
-    public void T2() { }
-    [Test]
-    public void T3() { }
-}
-
TestClass
->T1
->T2
->T3
-
3000
using NUnit.Framework;
-
-[TestFixture]
-public class TestClass1
-{
-    [Test]
-    public void T1() { }
-}
-
-[TestFixture]
-public class TestClass2
-{
-    [Test]
-    public void T2() { }
-    [Test]
-    public void T3() { }
-}
-
TestClass1
->T1
-TestClass2
->T2
->T3
-
3000
using NUnit.Framework;
-
-[TestFixture]
-public class TestClass
-{
-    [Test]
-    public void T1() { }
-    [Test, Ignore]
-    public void T2() { }
-    [Test]
-    public void T3() { }
-}
-
TestClass
->T1
->T2
->T3
-
2010
using NUnit.Framework;
-
-[TestFixture]
-public class TestClass
-{
-    [Test]
-    public void T1() { }
-    [Test, Explicit]
-    public void T2() { }
-    [Test]
-    public void T3() { }
-}
-
TestClass
->T1
->T2
->T3
-
2100
-

Summary Information

- - - - -
fit.Summary
- - diff --git a/Tools/nunit/NUnitTests.config b/Tools/nunit/NUnitTests.config deleted file mode 100644 index 72ed67c79a4..00000000000 --- a/Tools/nunit/NUnitTests.config +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Tools/nunit/NUnitTests.nunit b/Tools/nunit/NUnitTests.nunit deleted file mode 100644 index 15b98d3f03b..00000000000 --- a/Tools/nunit/NUnitTests.nunit +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/Tools/nunit/agent.conf b/Tools/nunit/agent.conf deleted file mode 100644 index ddbcd8ea6d8..00000000000 --- a/Tools/nunit/agent.conf +++ /dev/null @@ -1,4 +0,0 @@ - - 8080 - . - \ No newline at end of file diff --git a/Tools/nunit/agent.log.conf b/Tools/nunit/agent.log.conf deleted file mode 100644 index b5bcd9da484..00000000000 --- a/Tools/nunit/agent.log.conf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/Tools/nunit/framework/nunit.framework.dll b/Tools/nunit/framework/nunit.framework.dll deleted file mode 100644 index 215767d2fb38837c02dffec220b3ce69b4859260..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 147456 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