From dc8a32d1b14628df9ba5a77007594fa829d33a44 Mon Sep 17 00:00:00 2001 From: Nikita Tsukanov Date: Wed, 8 Mar 2017 23:26:07 +0300 Subject: [PATCH] Run Avalonia.Base.UnitTests using `dotnet test` --- .travis.yml | 2 + Avalonia.sln | 11 +--- build.cake | 34 +++++++++--- .../Avalonia.Base.UnitTests.csproj | 55 ++----------------- .../Avalonia.Benchmarks.csproj | 2 +- .../Avalonia.Controls.UnitTests.csproj | 2 +- .../Avalonia.Input.UnitTests.csproj | 2 +- .../Avalonia.Layout.UnitTests.csproj | 2 +- .../Avalonia.LeakTests.csproj | 2 +- .../Avalonia.Markup.UnitTests.csproj | 2 +- .../Avalonia.Markup.Xaml.UnitTests.csproj | 2 +- .../Avalonia.Styling.UnitTests.csproj | 2 +- .../Avalonia.UnitTests.csproj | 39 +++++++------ .../InvariantCultureFixture.cs | 7 +-- .../Avalonia.Visuals.UnitTests.csproj | 2 +- tests/coretests.props | 25 +++++++++ 16 files changed, 95 insertions(+), 96 deletions(-) create mode 100644 tests/coretests.props diff --git a/.travis.yml b/.travis.yml index af7d5dbebf..5740a5ecfd 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,8 +2,10 @@ language: csharp os: - linux - osx +dist: trusty mono: - latest +dotnet: 1.0.1 script: - ./build.sh --target "Travis" --platform "Mono" --configuration "Release" notifications: diff --git a/Avalonia.sln b/Avalonia.sln index 8e06247b1a..d563d4548b 100644 --- a/Avalonia.sln +++ b/Avalonia.sln @@ -31,6 +31,9 @@ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Animation", "src\Avalonia.Animation\Avalonia.Animation.csproj", "{D211E587-D8BC-45B9-95A4-F297C8FA5200}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}" + ProjectSection(SolutionItems) = preProject + tests\coretests.props = tests\coretests.props + EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Styling.UnitTests", "tests\Avalonia.Styling.UnitTests\Avalonia.Styling.UnitTests.csproj", "{47ECDF59-DEF8-4C53-87B1-2098A3429059}" EndProject @@ -163,9 +166,6 @@ Global src\Shared\RenderHelpers\RenderHelpers.projitems*{3c4c0cb4-0c0f-4450-a37b-148c84ff905f}*SharedItemsImports = 13 src\Shared\RenderHelpers\RenderHelpers.projitems*{3e908f67-5543-4879-a1dc-08eace79b3cd}*SharedItemsImports = 4 src\Windows\Avalonia.Win32\Avalonia.Win32.Shared.projitems*{40759a76-d0f2-464e-8000-6ff0f5c4bd7c}*SharedItemsImports = 4 - src\Shared\PlatformSupport\PlatformSupport.projitems*{4488ad85-1495-4809-9aa4-ddfe0a48527e}*SharedItemsImports = 4 - src\Shared\RenderHelpers\RenderHelpers.projitems*{47be08a7-5985-410b-9ffc-2264b8ea595f}*SharedItemsImports = 4 - src\Skia\Avalonia.Skia\Avalonia.Skia.projitems*{47be08a7-5985-410b-9ffc-2264b8ea595f}*SharedItemsImports = 4 tests\Avalonia.RenderTests\Avalonia.RenderTests.projitems*{48840edd-24bf-495d-911e-2eb12ae75d3b}*SharedItemsImports = 13 src\Shared\PlatformSupport\PlatformSupport.projitems*{4a1abb09-9047-4bd5-a4ad-a055e52c5ee0}*SharedItemsImports = 4 src\Shared\PlatformSupport\PlatformSupport.projitems*{7863ea94-f0fb-4386-bf8c-e5bfa761560a}*SharedItemsImports = 4 @@ -176,11 +176,6 @@ Global src\Shared\RenderHelpers\RenderHelpers.projitems*{925dd807-b651-475f-9f7c-cbeb974ce43d}*SharedItemsImports = 4 src\Skia\Avalonia.Skia\Avalonia.Skia.projitems*{925dd807-b651-475f-9f7c-cbeb974ce43d}*SharedItemsImports = 4 src\Windows\Avalonia.Win32\Avalonia.Win32.Shared.projitems*{9defc6b7-845b-4d8f-afc0-d32bf0032b8c}*SharedItemsImports = 13 - src\Shared\RenderHelpers\RenderHelpers.projitems*{bd43f7c0-396b-4aa1-bad9-dfde54d51298}*SharedItemsImports = 4 - src\Skia\Avalonia.Skia\Avalonia.Skia.projitems*{bd43f7c0-396b-4aa1-bad9-dfde54d51298}*SharedItemsImports = 4 - tests\Avalonia.RenderTests\Avalonia.RenderTests.projitems*{d35a9f3d-8bb0-496e-bf72-444038a7debb}*SharedItemsImports = 4 - tests\Avalonia.RenderTests\Avalonia.RenderTests.projitems*{dabfd304-d6a4-4752-8123-c2ccf7ac7831}*SharedItemsImports = 4 - tests\Avalonia.RenderTests\Avalonia.RenderTests.projitems*{e106cf37-4066-4615-b684-172a6d30b058}*SharedItemsImports = 4 src\Shared\PlatformSupport\PlatformSupport.projitems*{e4d9629c-f168-4224-3f51-a5e482ffbc42}*SharedItemsImports = 13 src\Shared\RenderHelpers\RenderHelpers.projitems*{fb05ac90-89ba-4f2f-a924-f37875fb547c}*SharedItemsImports = 4 EndGlobalSection diff --git a/build.cake b/build.cake index 5e004afc1a..2bb4671e62 100644 --- a/build.cake +++ b/build.cake @@ -127,6 +127,8 @@ Task("Restore-NuGet-Packages") void DotNetCoreBuild() { + DotNetCoreRestore("samples\\ControlCatalog.NetCore"); + DotNetBuild("samples\\ControlCatalog.NetCore"); } Task("DotNetCoreBuild") @@ -155,8 +157,23 @@ Task("Build") } }); +void RunCoreTest(string dir) +{ + DotNetCoreRestore(dir); + var frameworks = new List{"netcoreapp1.1"}; + if(parameters.IsRunningOnWindows) + frameworks.Add("net461"); + foreach(var fw in frameworks) + { + Information("Running for " + fw); + DotNetCoreTest(System.IO.Path.Combine(dir, System.IO.Path.GetFileName(dir)+".csproj"), + new DotNetCoreTestSettings{Framework = fw}); + } +} + void RunDotNetCoreTest() { + RunCoreTest("./tests/Avalonia.Base.UnitTests"); } Task("Run-Net-Core-Unit-Tests") @@ -164,14 +181,13 @@ Task("Run-Net-Core-Unit-Tests") .Does(() => RunDotNetCoreTest()); Task("Run-Unit-Tests") + .IsDependentOn("Run-Net-Core-Unit-Tests") .IsDependentOn("Build") .WithCriteria(() => !parameters.SkipTests) .Does(() => { - if(parameters.IsRunningOnWindows) - { - RunDotNetCoreTest(); - } + if(!parameters.IsRunningOnWindows) + return; var unitTests = GetDirectories("./tests/Avalonia.*.UnitTests") .Select(dir => System.IO.Path.GetFileName(dir.FullPath)) @@ -342,9 +358,13 @@ Task("Publish-NuGet") Task("Package") .IsDependentOn("Create-NuGet-Packages"); -Task("Default") - .IsDependentOn("Package"); - +Task("Default").Does(() => +{ + if(parameters.IsRunningOnWindows) + RunTarget("Package"); + else + RunTarget("Run-Net-Core-Unit-Tests"); +}); Task("AppVeyor") .IsDependentOn("Zip-Files") .IsDependentOn("Publish-MyGet") diff --git a/tests/Avalonia.Base.UnitTests/Avalonia.Base.UnitTests.csproj b/tests/Avalonia.Base.UnitTests/Avalonia.Base.UnitTests.csproj index 5d17349179..31aed15ae8 100644 --- a/tests/Avalonia.Base.UnitTests/Avalonia.Base.UnitTests.csproj +++ b/tests/Avalonia.Base.UnitTests/Avalonia.Base.UnitTests.csproj @@ -1,17 +1,9 @@ - - + - Debug - AnyCPU + net461;netcoreapp1.1 {2905FF23-53FB-45E6-AA49-6AF47A172056} - Library - Properties - Avalonia.Base.UnitTests - Avalonia.Base.UnitTests - v4.6.1 - 512 - + true full @@ -20,6 +12,7 @@ DEBUG;TRACE prompt 4 + MinimumRecommendedRules.ruleset pdbonly @@ -28,6 +21,7 @@ TRACE prompt 4 + MinimumRecommendedRules.ruleset @@ -53,9 +47,6 @@ - - - {B09B78D8-9B26-48B0-9149-D64A2F120F3F} @@ -66,26 +57,6 @@ Avalonia.UnitTests - - - - - False - - - False - - - False - - - False - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/tests/Avalonia.Benchmarks/Avalonia.Benchmarks.csproj b/tests/Avalonia.Benchmarks/Avalonia.Benchmarks.csproj index 8df2deabee..ed7af3b0ca 100644 --- a/tests/Avalonia.Benchmarks/Avalonia.Benchmarks.csproj +++ b/tests/Avalonia.Benchmarks/Avalonia.Benchmarks.csproj @@ -111,7 +111,7 @@ - + \ No newline at end of file diff --git a/tests/Avalonia.Controls.UnitTests/Avalonia.Controls.UnitTests.csproj b/tests/Avalonia.Controls.UnitTests/Avalonia.Controls.UnitTests.csproj index e59916e31f..734d7a3d35 100644 --- a/tests/Avalonia.Controls.UnitTests/Avalonia.Controls.UnitTests.csproj +++ b/tests/Avalonia.Controls.UnitTests/Avalonia.Controls.UnitTests.csproj @@ -159,7 +159,7 @@ - + diff --git a/tests/Avalonia.Input.UnitTests/Avalonia.Input.UnitTests.csproj b/tests/Avalonia.Input.UnitTests/Avalonia.Input.UnitTests.csproj index fc4deba5dc..31ceadb6ca 100644 --- a/tests/Avalonia.Input.UnitTests/Avalonia.Input.UnitTests.csproj +++ b/tests/Avalonia.Input.UnitTests/Avalonia.Input.UnitTests.csproj @@ -105,7 +105,7 @@ --> - + diff --git a/tests/Avalonia.Layout.UnitTests/Avalonia.Layout.UnitTests.csproj b/tests/Avalonia.Layout.UnitTests/Avalonia.Layout.UnitTests.csproj index 07e6c2ecaf..01732a85d7 100644 --- a/tests/Avalonia.Layout.UnitTests/Avalonia.Layout.UnitTests.csproj +++ b/tests/Avalonia.Layout.UnitTests/Avalonia.Layout.UnitTests.csproj @@ -128,7 +128,7 @@ - + diff --git a/tests/Avalonia.LeakTests/Avalonia.LeakTests.csproj b/tests/Avalonia.LeakTests/Avalonia.LeakTests.csproj index 251e9e9297..2c550bb97c 100644 --- a/tests/Avalonia.LeakTests/Avalonia.LeakTests.csproj +++ b/tests/Avalonia.LeakTests/Avalonia.LeakTests.csproj @@ -130,7 +130,7 @@ - + diff --git a/tests/Avalonia.Markup.UnitTests/Avalonia.Markup.UnitTests.csproj b/tests/Avalonia.Markup.UnitTests/Avalonia.Markup.UnitTests.csproj index 534bd919e1..8778f6752d 100644 --- a/tests/Avalonia.Markup.UnitTests/Avalonia.Markup.UnitTests.csproj +++ b/tests/Avalonia.Markup.UnitTests/Avalonia.Markup.UnitTests.csproj @@ -113,7 +113,7 @@ --> - + diff --git a/tests/Avalonia.Markup.Xaml.UnitTests/Avalonia.Markup.Xaml.UnitTests.csproj b/tests/Avalonia.Markup.Xaml.UnitTests/Avalonia.Markup.Xaml.UnitTests.csproj index b6d4407192..31f5495a18 100644 --- a/tests/Avalonia.Markup.Xaml.UnitTests/Avalonia.Markup.Xaml.UnitTests.csproj +++ b/tests/Avalonia.Markup.Xaml.UnitTests/Avalonia.Markup.Xaml.UnitTests.csproj @@ -159,7 +159,7 @@ --> - + diff --git a/tests/Avalonia.Styling.UnitTests/Avalonia.Styling.UnitTests.csproj b/tests/Avalonia.Styling.UnitTests/Avalonia.Styling.UnitTests.csproj index 7b85c3fe4d..c00036f6dc 100644 --- a/tests/Avalonia.Styling.UnitTests/Avalonia.Styling.UnitTests.csproj +++ b/tests/Avalonia.Styling.UnitTests/Avalonia.Styling.UnitTests.csproj @@ -141,7 +141,7 @@ --> - + diff --git a/tests/Avalonia.UnitTests/Avalonia.UnitTests.csproj b/tests/Avalonia.UnitTests/Avalonia.UnitTests.csproj index 1c07e547ec..e84fa4c89c 100644 --- a/tests/Avalonia.UnitTests/Avalonia.UnitTests.csproj +++ b/tests/Avalonia.UnitTests/Avalonia.UnitTests.csproj @@ -1,17 +1,8 @@ - - - + - Debug - AnyCPU - {88060192-33D5-4932-B0F9-8BD2763E857D} - Library - Properties - Avalonia.UnitTests - Avalonia.UnitTests - v4.6.1 - 512 - + net461;netcoreapp1.1 + False + false true @@ -53,9 +44,13 @@ - + {4a1abb09-9047-4bd5-a4ad-a055e52c5ee0} Avalonia.DotNetFrameworkRuntime + + + {fae04ec0-301f-11d3-bf4b-00c04f79efbc} + Avalonia.DotNetCoreRuntime {3e53a01a-b331-47f3-b828-4a5717e77a24} @@ -104,9 +99,7 @@ - - - + + + + + + + + - + + + + \ No newline at end of file diff --git a/tests/Avalonia.UnitTests/InvariantCultureFixture.cs b/tests/Avalonia.UnitTests/InvariantCultureFixture.cs index f82afa5397..f27df8f599 100644 --- a/tests/Avalonia.UnitTests/InvariantCultureFixture.cs +++ b/tests/Avalonia.UnitTests/InvariantCultureFixture.cs @@ -20,14 +20,13 @@ namespace Avalonia.UnitTests public InvariantCultureFixture() { - _restore = Thread.CurrentThread.CurrentUICulture; - Thread.CurrentThread.CurrentUICulture = - Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture; + _restore = CultureInfo.CurrentUICulture; + CultureInfo.CurrentUICulture = CultureInfo.CurrentCulture = CultureInfo.InvariantCulture; } public void Dispose() { - Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture = _restore; + CultureInfo.CurrentUICulture = CultureInfo.CurrentCulture = _restore; } } } diff --git a/tests/Avalonia.Visuals.UnitTests/Avalonia.Visuals.UnitTests.csproj b/tests/Avalonia.Visuals.UnitTests/Avalonia.Visuals.UnitTests.csproj index c731be7418..c9d8a02575 100644 --- a/tests/Avalonia.Visuals.UnitTests/Avalonia.Visuals.UnitTests.csproj +++ b/tests/Avalonia.Visuals.UnitTests/Avalonia.Visuals.UnitTests.csproj @@ -124,7 +124,7 @@ --> - + diff --git a/tests/coretests.props b/tests/coretests.props new file mode 100644 index 0000000000..4253d70cdd --- /dev/null +++ b/tests/coretests.props @@ -0,0 +1,25 @@ + + + + + False + false + true + + + + + + + + + + + + + + + + + + \ No newline at end of file