[Tests]Update to Xamarin.UITest 3.0 and NUnit 3.0 (#6332) (#7031)
authorShane Neuville <shneuvil@microsoft.com>
Tue, 10 Sep 2019 15:05:55 +0000 (09:05 -0600)
committerRui Marinho <me@ruimarinho.net>
Tue, 10 Sep 2019 15:05:55 +0000 (16:05 +0100)
* [Tests]Update to Xamarin.UITest 3.0 and NUnit 3.0 (#6332)

* - increment test nugets

* - adapter folder

* - uitest version

* add wait for 34632

32 files changed:
Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla34632.cs
Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla35736.cs
Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/TestPages/ScreenshotConditionalApp.cs
Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/TestPages/TestPages.cs
Xamarin.Forms.Core.Android.UITests/Xamarin.Forms.Core.Android.UITests.csproj
Xamarin.Forms.Core.UITests.Shared/BaseTestFixture.cs
Xamarin.Forms.Core.UnitTests/AnimationTests.cs
Xamarin.Forms.Core.UnitTests/BindingUnitTests.cs
Xamarin.Forms.Core.UnitTests/CellTests.cs
Xamarin.Forms.Core.UnitTests/GeocoderUnitTests.cs
Xamarin.Forms.Core.UnitTests/MotionTests.cs
Xamarin.Forms.Core.UnitTests/NavigationUnitTest.cs
Xamarin.Forms.Core.UnitTests/ResourceDictionaryTests.cs
Xamarin.Forms.Core.UnitTests/StyleTests.cs
Xamarin.Forms.Core.UnitTests/TypedBindingUnitTests.cs
Xamarin.Forms.Core.UnitTests/UriImageSourceTests.cs
Xamarin.Forms.Core.UnitTests/Xamarin.Forms.Core.UnitTests.csproj
Xamarin.Forms.Core.Windows.UITests/Xamarin.Forms.Core.Windows.UITests.csproj
Xamarin.Forms.Core.iOS.UITests/Xamarin.Forms.Core.iOS.UITests.csproj
Xamarin.Forms.Core.macOS.UITests/Xamarin.Forms.Core.macOS.UITests.csproj
Xamarin.Forms.Pages.UnitTests/Xamarin.Forms.Pages.UnitTests.csproj
Xamarin.Forms.Xaml.UnitTests/DesignTimeLoaderTests.cs
Xamarin.Forms.Xaml.UnitTests/Issues/GH2691.xaml.cs
Xamarin.Forms.Xaml.UnitTests/LoaderTests.cs
Xamarin.Forms.Xaml.UnitTests/MSBuild/MSBuildTests.cs
Xamarin.Forms.Xaml.UnitTests/MockAssemblyResolver.cs [new file with mode: 0644]
Xamarin.Forms.Xaml.UnitTests/Speed/SimpleContentPage.xaml.cs
Xamarin.Forms.Xaml.UnitTests/Xamarin.Forms.Xaml.UnitTests.csproj
Xamarin.Forms.Xaml.UnitTests/XamlC/FieldReferenceExtensionsTests.cs
Xamarin.Forms.Xaml.UnitTests/XamlC/MethodDefinitionExtensionsTests.cs
Xamarin.Forms.Xaml.UnitTests/XamlC/MethodReferenceExtensionsTests.cs
Xamarin.Forms.Xaml.UnitTests/XamlParseExceptionConstraint.cs

index c54da03d25a95db12f42ed30d0a70e0116967de2..477239956998c50753399023ff36dbef459528b7 100644 (file)
@@ -74,6 +74,12 @@ namespace Xamarin.Forms.Controls.Issues
                                RunningApp.Tap (q => q.Marked ("btnDismissModal"));
                                RunningApp.Tap (q => q.Marked ("btnMaster"));
                        }
+                       else
+                       {
+                               // Wait for the test to finish loading before exiting otherwise
+                               // the next UI test might start running while this is still loading
+                               RunningApp.WaitForElement(q => q.Marked("btnModal"));
+                       }
                }
 
                [TearDown]
index 1581e8c5b4df2ee99d2f906361accfde81b4e0d5..190286dcaf79212d14e6b8b2f9e8c7683b5b79fc 100644 (file)
@@ -45,7 +45,7 @@ namespace Xamarin.Forms.Controls.Issues
 #if UITEST && __IOS__
                [Test]
                [Category(UITestCategories.ManualReview)]
-               [Ignore]
+               [Ignore("Fails sometimes")]
                public void Bugzilla35736Test() 
                {
                        RunningApp.WaitForElement(q => q.Marked("Bugzilla35736Editor"));
index 81c34e3e690007c40bcceaee90ac1bafcb077dd0..1bace346f7a0a0b8213548cf6706ef58e432cde2 100644 (file)
@@ -240,9 +240,7 @@ namespace Xamarin.Forms.Controls
 
                public void SwipeRight()
                {
-#pragma warning disable 618
-                       _app.SwipeRight();
-#pragma warning restore 618
+                       SwipeLeftToRight();
                }
 
                public void SwipeLeftToRight(double swipePercentage = 0.67, int swipeSpeed = 500, bool withInertia = true)
@@ -257,9 +255,7 @@ namespace Xamarin.Forms.Controls
 
                public void SwipeLeft()
                {
-#pragma warning disable 618
-                       _app.SwipeLeft();
-#pragma warning restore 618
+                       SwipeRightToLeft();
                }
 
                public void SwipeRightToLeft(double swipePercentage = 0.67, int swipeSpeed = 500, bool withInertia = true)
index cf846dd602663f5842dbe1bc990e43e1524ef334..29df4c4df38bb26f5b2a3ab1362edbec02e51c0a 100644 (file)
@@ -783,7 +783,7 @@ namespace Xamarin.Forms.Controls.Issues
        [SetUpFixture]
        public class IssuesSetup
        {
-               [SetUp]
+               [OneTimeSetUp]
                public void RunBeforeAnyTests()
                {
                        AppSetup.RunningApp = AppSetup.Setup(null);
index e7e55a7f8a38a7bf3139e7c7fc56801f826af9e4..8bee667f9fed52ff20ca623e4d3cbd1b0099c766 100644 (file)
   </ItemGroup>
   <ItemGroup>
     <PackageReference Include="Newtonsoft.Json" Version="11.0.2" />
-    <PackageReference Include="NUnit" Version="2.6.4" />
-    <PackageReference Include="NUnitTestAdapter">
-      <Version>2.2.0</Version>
-    </PackageReference>
+    <PackageReference Include="NUnit" Version="3.12.0" />
     <PackageReference Include="Xam.Plugin.DeviceInfo" Version="3.0.2" />
-    <PackageReference Include="Xamarin.UITest" Version="2.2.7" />
+    <PackageReference Include="Xamarin.UITest" Version="3.0.3" />
+    <PackageReference Include="NUnit3TestAdapter">
+      <Version>3.15.1</Version>
+    </PackageReference>
   </ItemGroup>
   <ItemGroup>
     <Compile Include="BaseViewContainerRemoteAndroid.cs" />
index 6abf117f4849eeca57496cd0baedaaca73b48c75..e7b77c1fe85385e8ed03efeec0a190ec62b163fc 100644 (file)
@@ -17,7 +17,7 @@ namespace Xamarin.Forms.Core.UITests
 
                public static AppRect ScreenBounds { get; set; }
 
-               [TestFixtureTearDown]
+               [OneTimeTearDown]
                protected virtual void FixtureTeardown()
                {
                }
@@ -45,7 +45,7 @@ namespace Xamarin.Forms.Core.UITests
                [SetUp]
                protected virtual void TestSetup()
                {
-                       EnsureMemory();
+                       //EnsureMemory();
                }
 
                [TearDown]
@@ -55,9 +55,7 @@ namespace Xamarin.Forms.Core.UITests
 
                protected abstract void NavigateToGallery();
 
-#pragma warning disable 618
-               [TestFixtureSetUp]
-#pragma warning restore 618
+               [OneTimeSetUp]
                protected virtual void FixtureSetup()
                {
                        ResetApp();
@@ -111,7 +109,6 @@ namespace Xamarin.Forms.Core.UITests
                }
        }
 }
-
 #if UITEST
 
 namespace Xamarin.Forms.Core.UITests
@@ -121,7 +118,7 @@ namespace Xamarin.Forms.Core.UITests
        [SetUpFixture]
        public class CoreUITestsSetup
        {
-               [SetUp]
+               [OneTimeSetUp]
                public void RunBeforeAnyTests()
                {
                        LaunchApp();
@@ -138,4 +135,4 @@ namespace Xamarin.Forms.Core.UITests
        }
 }
 
-#endif
\ No newline at end of file
+#endif
index 5b110bebf307bb75884eafac15972ae71da61295..121a3c841798ce2291008e25e9159898bcfae166 100644 (file)
@@ -8,7 +8,7 @@ namespace Xamarin.Forms.Core.UnitTests
        {
                [Test]
                //https://bugzilla.xamarin.com/show_bug.cgi?id=51424
-               public async void AnimationRepeats()
+               public async Task AnimationRepeats()
                {
                        var box = new BoxView();
                        Assume.That(box.Rotation, Is.EqualTo(0d));
index c536c49a9b6d95575cecc07e3d596a88ae070648..548034fd2b693ec4ccf03ec127c14f20a65a51b2 100644 (file)
@@ -1588,7 +1588,7 @@ namespace Xamarin.Forms.Core.UnitTests
                        Assert.That (() => bindable.SetBinding (MockBindable.TextProperty, new Binding ("Text2")), Throws.Nothing);
                        Assert.That (bindable.Text, Is.EqualTo (MockBindable.TextProperty.DefaultValue));
                        Assert.That (log.Messages.Count, Is.EqualTo (1), "An error was not logged");
-                       Assert.That (log.Messages[0], Is.StringContaining (String.Format (BindingExpression.PropertyNotFoundErrorMessage,
+                       Assert.That (log.Messages[0], Does.Contain(String.Format (BindingExpression.PropertyNotFoundErrorMessage,
                                "Text2",
                                "Xamarin.Forms.Core.UnitTests.BindingUnitTests+DifferentViewModel",
                                "Xamarin.Forms.Core.UnitTests.MockBindable",
@@ -1607,7 +1607,7 @@ namespace Xamarin.Forms.Core.UnitTests
                        Assert.That (bindable.Text, Is.EqualTo ("Foo"));
 
                        Assert.That (log.Messages.Count, Is.Not.GreaterThan (1), "Too many errors were logged");
-                       Assert.That (log.Messages[0], Is.StringContaining (String.Format (BindingExpression.PropertyNotFoundErrorMessage,
+                       Assert.That (log.Messages[0], Does.Contain(String.Format (BindingExpression.PropertyNotFoundErrorMessage,
                                "Text",
                                "Xamarin.Forms.Core.UnitTests.BindingUnitTests+EmptyViewModel",
                                "Xamarin.Forms.Core.UnitTests.MockBindable",
@@ -1621,7 +1621,7 @@ namespace Xamarin.Forms.Core.UnitTests
                        Assert.That (() => bindable.SetBinding (MockBindable.TextProperty, new Binding ("Text")), Throws.Nothing);
 
                        Assert.That (log.Messages.Count, Is.EqualTo (1), "An error was not logged");
-                       Assert.That (log.Messages[0], Is.StringContaining (String.Format (BindingExpression.PropertyNotFoundErrorMessage,
+                       Assert.That (log.Messages[0], Does.Contain(String.Format (BindingExpression.PropertyNotFoundErrorMessage,
                                "Text",
                                "Xamarin.Forms.Core.UnitTests.BindingUnitTests+DifferentViewModel",
                                "Xamarin.Forms.Core.UnitTests.MockBindable",
@@ -1637,7 +1637,7 @@ namespace Xamarin.Forms.Core.UnitTests
                        Assert.That (() => bindable.SetBinding (MockBindable.TextProperty, new Binding ("PrivateSetter")), Throws.Nothing);
 
                        Assert.That (log.Messages.Count, Is.EqualTo (1), "An error was not logged");
-                       Assert.That (log.Messages[0], Is.StringContaining (String.Format (BindingExpression.PropertyNotFoundErrorMessage,
+                       Assert.That (log.Messages[0], Does.Contain(String.Format (BindingExpression.PropertyNotFoundErrorMessage,
                                "PrivateSetter",
                                "Xamarin.Forms.Core.UnitTests.BindingUnitTests+DifferentViewModel",
                                "Xamarin.Forms.Core.UnitTests.MockBindable",
@@ -1646,7 +1646,7 @@ namespace Xamarin.Forms.Core.UnitTests
                        Assert.That (() => bindable.SetValueCore (MockBindable.TextProperty, "foo"), Throws.Nothing);
 
                        Assert.That (log.Messages.Count, Is.EqualTo (2), "An error was not logged");
-                       Assert.That (log.Messages[1], Is.StringContaining (String.Format (BindingExpression.PropertyNotFoundErrorMessage,
+                       Assert.That (log.Messages[1], Does.Contain(String.Format (BindingExpression.PropertyNotFoundErrorMessage,
                                "PrivateSetter",
                                "Xamarin.Forms.Core.UnitTests.BindingUnitTests+DifferentViewModel",
                                "Xamarin.Forms.Core.UnitTests.MockBindable",
@@ -1660,7 +1660,7 @@ namespace Xamarin.Forms.Core.UnitTests
                        Assert.That (() => bindable.SetBinding (MockBindable.TextProperty, new Binding ("MissingProperty")), Throws.Nothing);
 
                        Assert.That (log.Messages.Count, Is.EqualTo (1), "An error was not logged");
-                       Assert.That (log.Messages[0], Is.StringContaining (String.Format (BindingExpression.PropertyNotFoundErrorMessage,
+                       Assert.That (log.Messages[0], Does.Contain(String.Format (BindingExpression.PropertyNotFoundErrorMessage,
                                "MissingProperty",
                                "Xamarin.Forms.Core.UnitTests.MockViewModel",
                                "Xamarin.Forms.Core.UnitTests.MockBindable",
@@ -1688,7 +1688,7 @@ namespace Xamarin.Forms.Core.UnitTests
                        Assert.That (() => bindable.SetBinding (MockBindable.TextProperty, new Binding ("Model.MissingProperty")), Throws.Nothing);
 
                        Assert.That (log.Messages.Count, Is.EqualTo (1), "An error was not logged");
-                       Assert.That (log.Messages[0], Is.StringContaining (String.Format (BindingExpression.PropertyNotFoundErrorMessage,
+                       Assert.That (log.Messages[0], Does.Contain(String.Format (BindingExpression.PropertyNotFoundErrorMessage,
                                "MissingProperty",
                                "Xamarin.Forms.Core.UnitTests.BindingBaseUnitTests+ComplexMockViewModel",
                                "Xamarin.Forms.Core.UnitTests.MockBindable",
index 0006b4cf680604df5399858695743e11ba1f9e45..e9857e9d0e596670654fff7056271a8707f360c2 100644 (file)
@@ -1,5 +1,6 @@
 using NUnit.Framework;
 using System;
+using System.Threading.Tasks;
 
 namespace Xamarin.Forms.Core.UnitTests
 {
@@ -153,7 +154,7 @@ namespace Xamarin.Forms.Core.UnitTests
                }
 
                [Test]
-               public async void ForceUpdateSizeCallsAreRateLimited()
+               public async Task ForceUpdateSizeCallsAreRateLimited()
                {
                        var lv = new ListView { HasUnevenRows = true };
                        var cell = new ViewCell { Parent = lv };
@@ -172,7 +173,7 @@ namespace Xamarin.Forms.Core.UnitTests
                }
 
                [Test]
-               public async void ForceUpdateSizeWillNotBeCalledIfParentIsNotAListViewWithUnevenRows ()
+               public async Task ForceUpdateSizeWillNotBeCalledIfParentIsNotAListViewWithUnevenRows ()
                {
                        var lv = new ListView { HasUnevenRows = false };
                        var cell = new ViewCell { Parent = lv };
index 414c49deb62441e494c61df2ef084b243bfc65fd..9047487f89e8969ceac65b67bd9a1957c2db6b08 100644 (file)
@@ -11,7 +11,7 @@ namespace Xamarin.Forms.Core.UnitTests
        public class GeocoderUnitTests : BaseTestFixture
        {
                [Test]
-               public async void AddressesForPosition ()
+               public async Task AddressesForPosition ()
                {
                        Geocoder.GetAddressesForPositionFuncAsync = GetAddressesForPositionFuncAsync;
                        var geocoder = new Geocoder ();
@@ -26,7 +26,7 @@ namespace Xamarin.Forms.Core.UnitTests
                }
 
                [Test]
-               public async void PositionsForAddress () {
+               public async Task PositionsForAddress () {
                        Geocoder.GetPositionsForAddressAsyncFunc = GetPositionsForAddressAsyncFunc      ;
                        var geocoder = new Geocoder ();
                        var result = await geocoder.GetPositionsForAddressAsync ("quux");
index 432a2a9dd5ef9cc10813822ed07d17901fb7f1dd..a5aa8c7753df7f8d861efc24cc5b0aee2771c2ff 100644 (file)
@@ -61,14 +61,14 @@ namespace Xamarin.Forms.Core.UnitTests
        [TestFixture]
        public class MotionTests : BaseTestFixture
        {
-               [TestFixtureSetUp]
+               [OneTimeSetUp]
                public void Init ()
                {
                        Device.PlatformServices = new MockPlatformServices ();
                        Ticker.Default = new BlockingTicker ();
                }
 
-               [TestFixtureTearDown]
+               [OneTimeTearDown]
                public void End ()
                {
                        Device.PlatformServices = null;
@@ -154,14 +154,14 @@ namespace Xamarin.Forms.Core.UnitTests
        [TestFixture]
        public class TickerSystemEnabledTests
        {
-               [TestFixtureSetUp]
+               [OneTimeSetUp]
                public void Init ()
                {
                        Device.PlatformServices = new MockPlatformServices ();
                        Ticker.Default = new AsyncTicker(); 
                }
 
-               [TestFixtureTearDown]
+               [OneTimeTearDown]
                public void End ()
                {
                        Device.PlatformServices = null;
index 595db9a11f546f408d4525955430752b2307d5e3..f5f6e63264b09ba658219825fdb07455413b8c5e 100644 (file)
@@ -441,7 +441,7 @@ namespace Xamarin.Forms.Core.UnitTests
                }
 
                [Test]
-               public async void HandlesPopToRoot ()
+               public async Task HandlesPopToRoot ()
                {
                        var root = new ContentPage { Title = "Root" };
                        var navPage = new NavigationPage (root);
@@ -489,7 +489,7 @@ namespace Xamarin.Forms.Core.UnitTests
                }
 
                [Test]
-               public async void NavigatesBackWhenBackButtonPressed ()
+               public async Task NavigatesBackWhenBackButtonPressed ()
                {
                        var root = new ContentPage { Title = "Root" };
                        var navPage = new NavigationPage (root);
@@ -503,7 +503,7 @@ namespace Xamarin.Forms.Core.UnitTests
                }
 
                [Test]
-               public async void DoesNotNavigatesBackWhenBackButtonPressedIfHandled ()
+               public async Task DoesNotNavigatesBackWhenBackButtonPressedIfHandled ()
                {
                        var root = new BackButtonPage { Title = "Root" };
                        var second = new BackButtonPage () {Handle = true};
@@ -562,7 +562,7 @@ namespace Xamarin.Forms.Core.UnitTests
                }
 
                [Test]
-               public async void TestRemovePage()
+               public async Task TestRemovePage()
                {
                        var root = new ContentPage { Title = "Root" };
                        var newPage = new ContentPage();
index 157b43f11e1dee4b5ff1523c57345eda4f26a02d..8ada0aec0038fd8db82142b4f207a0d879734aeb 100644 (file)
@@ -261,7 +261,7 @@ namespace Xamarin.Forms.Core.UnitTests
                        var rd = new ResourceDictionary();
                        rd.Add("foo", "bar");
                        var ex = Assert.Throws<KeyNotFoundException>(() => { var foo = rd ["test_invalid_key"]; });
-                       Assert.That(ex.Message, Is.StringContaining("test_invalid_key"));
+                       Assert.That(ex.Message, Does.Contain("test_invalid_key"));
                }
 
                class MyRD : ResourceDictionary
index 0d6bf942c94f36192d5b23166e3cc2c44c76388f..6e9df6d3d5699fa03c30f68fb0510c9af1555d7b 100644 (file)
@@ -411,7 +411,7 @@ namespace Xamarin.Forms.Core.UnitTests
 
                [Test]
                //https://bugzilla.xamarin.com/show_bug.cgi?id=31207
-               public async void StyleDontHoldStrongReferences ()
+               public async Task StyleDontHoldStrongReferences ()
                {
                        var style = new Style (typeof(Label));
                        var label = new Label ();
index 0d72bead9df480555ee7ab0e1e0d6c07b3d5fa84..5d8378552fb5b158d2901dcd6bb8a98e78698b24 100644 (file)
@@ -1490,7 +1490,7 @@ namespace Xamarin.Forms.Core.UnitTests
                }
 
                [Test]
-               [Ignore]
+               [Ignore("SpeedTestApply")]
                public void SpeedTestApply()
                {
                        
@@ -1560,7 +1560,7 @@ namespace Xamarin.Forms.Core.UnitTests
                }
 
                [Test]
-               [Ignore]
+               [Ignore("SpeedTestSetBC")]
                public void SpeedTestSetBC()
                {
                        var property = BindableProperty.Create("Foo", typeof(string), typeof(MockBindable));
index 39bce93107d8ecae82f27aa47ab51eb16b882ccd..d0816955b945f8e545a8b6d99dc0a0c38c1b7a3f 100644 (file)
@@ -48,7 +48,7 @@ namespace Xamarin.Forms.Core.UnitTests
                }
 
                [Test]
-               [Ignore]
+               [Ignore("LoadImageFromStream")]
                public void LoadImageFromStream ()
                {
                        var loader = new UriImageSource { 
@@ -60,7 +60,7 @@ namespace Xamarin.Forms.Core.UnitTests
                }
 
                [Test]
-               [Ignore]
+               [Ignore("SecondCallLoadFromCache")]
                public void SecondCallLoadFromCache ()
                {
                        var loader = new UriImageSource { 
@@ -80,7 +80,7 @@ namespace Xamarin.Forms.Core.UnitTests
                }
 
                [Test]
-               [Ignore]
+               [Ignore("DoNotKeepFailedRetrieveInCache")]
                public void DoNotKeepFailedRetrieveInCache ()
                {
                        var loader = new UriImageSource { 
@@ -98,7 +98,7 @@ namespace Xamarin.Forms.Core.UnitTests
                }
 
                [Test]
-               [Ignore]
+               [Ignore("ConcurrentCallsOnSameUriAreQueued")]
                public void ConcurrentCallsOnSameUriAreQueued ()
                {
                        var loader = new UriImageSource { 
index 23b564803dd4feb1ed20aa8af106b23c82256643..ff544f689815a3b19eeb1dbd4e657c2735827702 100644 (file)
     <Reference Include="System.Xml" />
   </ItemGroup>
   <ItemGroup>
-    <PackageReference Include="NUnit" Version="2.6.4" />
-    <PackageReference Include="NUnitTestAdapter" Version="2.2.0" />
+    <PackageReference Include="NUnit" Version="3.12.0" />
+    <PackageReference Include="NUnit3TestAdapter">
+      <Version>3.15.1</Version>
+    </PackageReference>
   </ItemGroup>
   <ItemGroup>
     <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
   </ItemGroup>
   <Target Name="_CopyNUnitTestAdapterFiles" AfterTargets="Build">
     <ItemGroup>
-      <_NUnitTestAdapterFiles Include="$(NuGetPackageRoot)NUnitTestAdapter\%(Version)\**" Condition="@(PackageReference -> '%(Identity)') == 'NUnitTestAdapter'" InProject="False" />
+      <_NUnitTestAdapterFiles Include="$(NuGetPackageRoot)NUnit3TestAdapter\%(Version)\build\net35\**" Condition="@(PackageReference -> '%(Identity)') == 'NUnit3TestAdapter'" InProject="False" />
     </ItemGroup>
-    <Copy SourceFiles="@(_NUnitTestAdapterFiles)" DestinationFolder="$(SolutionDir)packages\NUnitTestAdapter.AnyVersion\%(RecursiveDir)" ContinueOnError="true" Retries="0" />
+    <Copy SourceFiles="@(_NUnitTestAdapterFiles)" DestinationFolder="$(SolutionDir)packages\NUnitTestAdapter.AnyVersion\tools\%(RecursiveDir)" ContinueOnError="true" Retries="0" />
+    <Copy SourceFiles="@(_NUnitTestAdapterFiles)" DestinationFolder="$(SolutionDir)packages\NUnitTestAdapter.AnyVersion\build\%(RecursiveDir)" ContinueOnError="true" Retries="0" />
   </Target>
 </Project>
\ No newline at end of file
index f5e5e8fba9b417091f65948c6a69b933e1abbae0..80db4aa0a84fdc865c8802f7f2bb5da26a730922 100644 (file)
     <PackageReference Include="Castle.Core" Version="4.3.1" />
     <PackageReference Include="DotNetSeleniumExtras.PageObjects" Version="3.11.0" />
     <PackageReference Include="Newtonsoft.Json" Version="11.0.2" />
-    <PackageReference Include="NUnit" Version="2.6.4" />
-    <PackageReference Include="NUnitTestAdapter">
-      <Version>2.2.0</Version>
-    </PackageReference>
+    <PackageReference Include="NUnit" Version="3.12.0" />
     <PackageReference Include="Selenium.Support" Version="3.14.0" />
     <PackageReference Include="Selenium.WebDriver" Version="3.14.0" />
     <PackageReference Include="Xam.Plugin.DeviceInfo" Version="3.0.2" />
-    <PackageReference Include="Xamarin.UITest" Version="2.2.7" />
+    <PackageReference Include="Xamarin.UITest" Version="3.0.3" />
+    <PackageReference Include="NUnit3TestAdapter">
+      <Version>3.15.1</Version>
+    </PackageReference>
   </ItemGroup>
   <ItemGroup>
     <Compile Include="WindowsTestBase.cs" />
index 8ee7eedd7250aa855440392688b4df0e35921a80..cc5704109011b949defff78996e75cfd14a1cc5b 100644 (file)
@@ -46,9 +46,9 @@
   </ItemGroup>
   <ItemGroup>
     <PackageReference Include="Newtonsoft.Json" Version="11.0.2" />
-    <PackageReference Include="NUnit" Version="2.6.4" />
+    <PackageReference Include="NUnit" Version="3.12.0" />
     <PackageReference Include="Xam.Plugin.DeviceInfo" Version="3.0.2" />
-    <PackageReference Include="Xamarin.UITest" Version="2.2.7" />
+    <PackageReference Include="Xamarin.UITest" Version="3.0.3" />
   </ItemGroup>
   <ItemGroup>
     <Compile Include="BaseViewContainerRemoteiOS.cs" />
index a7afdf533df77565c9d62ee8d4f523f37727c8bc..5b6aa89d7fc4acc4ccd574b255d89c74d3f749af 100644 (file)
   </ItemGroup>
   <ItemGroup>
     <PackageReference Include="Newtonsoft.Json" Version="11.0.2" />
-    <PackageReference Include="NUnit" Version="2.6.4" />
+    <PackageReference Include="NUnit" Version="3.12.0" />
     <PackageReference Include="ServiceStack.Client" Version="4.5.12" />
     <PackageReference Include="ServiceStack.Interfaces" Version="4.5.12" />
     <PackageReference Include="ServiceStack.Text" Version="4.5.12" />
     <PackageReference Include="Xam.Plugin.DeviceInfo" Version="3.0.2" />
-    <PackageReference Include="Xamarin.UITest" Version="2.2.7" />
+    <PackageReference Include="Xamarin.UITest" Version="3.0.3" />
     <PackageReference Include="Xamarin.UITest.Desktop" Version="0.0.7" />
   </ItemGroup>
   <ItemGroup>
@@ -89,4 +89,4 @@
     </ItemGroup>
     <Copy SourceFiles="@(_XamarinUITestFiles)" DestinationFolder="$(SolutionDir)packages\Xamarin.UITest.AnyVersion\%(RecursiveDir)" ContinueOnError="true" Retries="0" />
   </Target>
-</Project>
+</Project>
\ No newline at end of file
index 83f1cb0ce97cc299caac471cc10459330dcef078..b2a91c4e6a31662ba99d0b5d85b89eded3b056eb 100644 (file)
   </ItemGroup>
   <ItemGroup>
     <PackageReference Include="Newtonsoft.Json" Version="11.0.2" />
-    <PackageReference Include="NUnit" Version="2.6.4" />
-    <PackageReference Include="NUnitTestAdapter" Version="2.2.0" />
+    <PackageReference Include="NUnit" Version="3.12.0" />
+    <PackageReference Include="NUnit3TestAdapter">
+      <Version>3.15.1</Version>
+    </PackageReference>
   </ItemGroup>
   <ItemGroup>
     <Compile Include="..\Xamarin.Forms.Core.UnitTests\MockDispatcherProvider.cs">
@@ -83,8 +85,9 @@
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
   <Target Name="_CopyNUnitTestAdapterFiles" AfterTargets="Build">
     <ItemGroup>
-      <_NUnitTestAdapterFiles Include="$(NuGetPackageRoot)NUnitTestAdapter\%(Version)\**" Condition="@(PackageReference -> '%(Identity)') == 'NUnitTestAdapter'" InProject="False" />
+      <_NUnitTestAdapterFiles Include="$(NuGetPackageRoot)NUnit3TestAdapter\%(Version)\build\net35\**" Condition="@(PackageReference -> '%(Identity)') == 'NUnit3TestAdapter'" InProject="False" />
     </ItemGroup>
-    <Copy SourceFiles="@(_NUnitTestAdapterFiles)" DestinationFolder="$(SolutionDir)packages\NUnitTestAdapter.AnyVersion\%(RecursiveDir)" ContinueOnError="true" Retries="0" />
+    <Copy SourceFiles="@(_NUnitTestAdapterFiles)" DestinationFolder="$(SolutionDir)packages\NUnitTestAdapter.AnyVersion\tools\%(RecursiveDir)" ContinueOnError="true" Retries="0" />
+    <Copy SourceFiles="@(_NUnitTestAdapterFiles)" DestinationFolder="$(SolutionDir)packages\NUnitTestAdapter.AnyVersion\build\%(RecursiveDir)" ContinueOnError="true" Retries="0" />
   </Target>
 </Project>
\ No newline at end of file
index dd0505b839c382c17e4334179b4c58a4391c2f3a..d791cf8075029306ea400264002c26b3570fc50d 100644 (file)
@@ -167,7 +167,7 @@ namespace Xamarin.Forms.Xaml.UnitTests
                        Assert.That(page.Content.BackgroundColor, Is.EqualTo(Color.Red));
                }
 
-               [Test][Ignore]
+               [Test][Ignore(nameof(ImplicitStyleAppliedToMissingType))]
                public void ImplicitStyleAppliedToMissingType()
                {
                        XamlLoader.FallbackTypeResolver = (p, type) => type ?? typeof(Button);
@@ -224,7 +224,7 @@ namespace Xamarin.Forms.Xaml.UnitTests
                        Assert.That(myButton.BackgroundColor, Is.Not.EqualTo(Color.Red));
                }
 
-               [Test][Ignore]
+               [Test][Ignore(nameof(StyleTargetingMissingTypeNotAppliedToFallbackType))]
                public void StyleTargetingMissingTypeNotAppliedToFallbackType()
                {
                        XamlLoader.FallbackTypeResolver = (p, type) => type ?? typeof(Button);
index 1c0abe6044772cdbabee03ef86d5223e2cf92f7f..547e9f2924aa6c2c6fc58f983590a8b6851c24af 100644 (file)
@@ -113,16 +113,17 @@ namespace Xamarin.Forms.Xaml.UnitTests
                                        "Release";
 #endif
 
+                               var dir = Path.GetFullPath(
+                                               Path.Combine(
+                                                       TestContext.CurrentContext.TestDirectory, "Xamarin.Forms.Controls.dll"));
                                var xamlg = new XamlGTask()
                                {
                                        BuildEngine = new DummyBuildEngine(),
                                        AssemblyName = "test",
                                        Language = "C#",
                                        XamlFiles = new[] { item },
-                                       OutputFiles = new [] { new TaskItem(xamlOutputFile) },
-                                       References = Path.GetFullPath(
-                                               Path.Combine(
-                                                       Directory.GetCurrentDirectory(), "Xamarin.Forms.Controls.dll"))
+                                       OutputFiles = new[] { new TaskItem(xamlOutputFile) },
+                                       References = dir
                                };
 
                                var generator = new XamlGenerator(item, xamlg.Language, xamlg.AssemblyName, xamlOutputFile, xamlg.References, null);
index e99a7c6045f7c8c7f4af05f2698f3fc25dc703fd..2a1c9fe0856709ec42b8f022237f1d4fd4537d03 100644 (file)
@@ -795,8 +795,12 @@ namespace Xamarin.Forms.Xaml.UnitTests
                        var bindingType = XamlParser.GetElementType(new XmlType("http://xamarin.com/schemas/2014/forms", "Binding", null), null, null, out var ex);
                        Assert.That(ex, Is.Null);
                        Assert.That(bindingType, Is.EqualTo(typeof(BindingExtension)));
-
-                       var bindingTypeRef = new XmlType("http://xamarin.com/schemas/2014/forms", "Binding", null).GetTypeReference(ModuleDefinition.CreateModule("foo", ModuleKind.Dll), null);
+                       var module = ModuleDefinition.CreateModule("foo", new ModuleParameters()
+                       {
+                               AssemblyResolver = new MockAssemblyResolver(),
+                               Kind = ModuleKind.Dll,
+                       });
+                       var bindingTypeRef = new XmlType("http://xamarin.com/schemas/2014/forms", "Binding", null).GetTypeReference(module, null);
                        Assert.That(bindingType.FullName, Is.EqualTo("Xamarin.Forms.Xaml.BindingExtension"));
                }
        }
index c954425569476f2b8f77d00ab6302a1d83e24e6b..2d0531ea646ddfa9e1d99ef178175ef5979842a7 100644 (file)
@@ -488,15 +488,15 @@ namespace Xamarin.Forms.MSBuild.UnitTests
                        AssertExists (Path.Combine (intermediateDirectory, "XamlC.stamp"));
                }
 
-               [Test, ExpectedException (typeof(AssertionException))]
-               public void InvalidXml ([Values (false, true)] bool sdkStyle)
+               [Test]
+               public void InvalidXml([Values(false, true)] bool sdkStyle)
                {
-                       var project = NewProject (sdkStyle);
-                       project.Add (AddFile ("MainPage.xaml", "EmbeddedResource", "notxmlatall"));
-                       var projectFile = Path.Combine (tempDirectory, "test.csproj");
-                       project.Save (projectFile);
-                       RestoreIfNeeded (projectFile, sdkStyle);
-                       Build (projectFile);
+                       var project = NewProject(sdkStyle);
+                       project.Add(AddFile("MainPage.xaml", "EmbeddedResource", "notxmlatall"));
+                       var projectFile = Path.Combine(tempDirectory, "test.csproj");
+                       project.Save(projectFile);
+                       RestoreIfNeeded(projectFile, sdkStyle);
+                       Assert.Throws<AssertionException>(() => Build(projectFile));
                }
 
                [Test]
diff --git a/Xamarin.Forms.Xaml.UnitTests/MockAssemblyResolver.cs b/Xamarin.Forms.Xaml.UnitTests/MockAssemblyResolver.cs
new file mode 100644 (file)
index 0000000..782a702
--- /dev/null
@@ -0,0 +1,20 @@
+using Mono.Cecil;
+using NUnit.Framework;
+using System.IO;
+
+namespace Xamarin.Forms.Xaml.UnitTests
+{
+       public class MockAssemblyResolver : BaseAssemblyResolver
+       {
+               public override AssemblyDefinition Resolve(AssemblyNameReference name)
+               {
+                       AssemblyDefinition assembly;
+                       var localPath = Path.GetFullPath(Path.Combine(TestContext.CurrentContext.TestDirectory, $"{name.Name}.dll"));
+                       if (File.Exists(localPath))
+                               assembly = AssemblyDefinition.ReadAssembly(localPath);
+                       else
+                               assembly = base.Resolve(name);
+                       return assembly;
+               }
+       }
+}
\ No newline at end of file
index bdf291e78fc24418712c81d15ddd6dc4791a8f9c..2e3c59d0b7ada3e6d25f299470d3ca1a5ba11c87 100644 (file)
@@ -46,7 +46,7 @@ namespace Xamarin.Forms.Xaml.UnitTests
                        }
 
                        [Test]
-                       [Ignore]
+                       [Ignore(nameof(XamlCIs20TimesFasterThanXaml))]
                        public void XamlCIs20TimesFasterThanXaml ()
                        {
                                var swXamlC = new Stopwatch ();
@@ -66,7 +66,7 @@ namespace Xamarin.Forms.Xaml.UnitTests
                        }
 
                        [Test]
-                       [Ignore]
+                       [Ignore(nameof(XamlCIsNotMuchSlowerThanCode))]
                        public void XamlCIsNotMuchSlowerThanCode ()
                        {
                                var swXamlC = new Stopwatch ();
index a9b779999013c7b5ccea543eb6cac5f18ebf6919..70d0c1d37630b6eec3aaf93fa76a6380bf784376 100644 (file)
@@ -4,7 +4,7 @@
     <RootNamespace>Xamarin.Forms.Xaml.UnitTests</RootNamespace>
     <AssemblyName>Xamarin.Forms.Xaml.UnitTests</AssemblyName>
     <WarningLevel>4</WarningLevel>
-    <NoWarn>0672;0219;0414</NoWarn>
+    <NoWarn>0672;0219;0414;CS0436</NoWarn>
   </PropertyGroup>
 
   <PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
@@ -19,8 +19,9 @@
     <ProjectReference Include="..\Xamarin.Forms.Build.Tasks\Xamarin.Forms.Build.Tasks.csproj" />
   </ItemGroup>
   <ItemGroup>
-    <PackageReference Include="NUnit" Version="2.6.4" />
+    <PackageReference Include="NUnit" Version="3.12.0" />
     <PackageReference Include="Microsoft.Build.Locator" Version="1.2.6" />
+    <PackageReference Include="NUnit3TestAdapter" Version="3.15.1" />
   </ItemGroup>
   <ItemGroup>
     <Compile Include="..\Xamarin.Forms.Core.UnitTests\MockDispatcherProvider.cs">
index bcea09fc295f7ea2ff40a5cc5a7a95aeb5fc4d43..054a3aea43ba4fd5723f9c2946f6cde2a59e84f1 100644 (file)
@@ -6,6 +6,7 @@ using Mono.Cecil;
 using Xamarin.Forms.Build.Tasks;
 
 using NUnit.Framework;
+using Xamarin.Forms.Xaml.UnitTests;
 
 namespace Xamarin.Forms.XamlcUnitTests
 {
@@ -31,7 +32,11 @@ namespace Xamarin.Forms.XamlcUnitTests
                [SetUp]
                public void SetUp ()
                {
-                       module = ModuleDefinition.CreateModule ("foo", ModuleKind.Dll);
+                       module = ModuleDefinition.CreateModule("foo", new ModuleParameters()
+                       {
+                               AssemblyResolver = new MockAssemblyResolver(),
+                               Kind = ModuleKind.Dll,
+                       });
                }
 
                [Test]
index 82a1c1e93d94b61f119b281f90f743f4de32f733..13cb08442a6980dcf24353dfb4ae22ad3e0a612d 100644 (file)
@@ -7,6 +7,7 @@ using Xamarin.Forms.Build.Tasks;
 
 using NUnit.Framework;
 using System.Collections.Generic;
+using Xamarin.Forms.Xaml.UnitTests;
 
 namespace Xamarin.Forms.XamlcUnitTests
 {
@@ -33,7 +34,11 @@ namespace Xamarin.Forms.XamlcUnitTests
                [SetUp]
                public void SetUp()
                {
-                       module = ModuleDefinition.CreateModule("foo", ModuleKind.Dll);
+                       module = ModuleDefinition.CreateModule("foo", new ModuleParameters()
+                       {
+                               AssemblyResolver = new MockAssemblyResolver(),
+                               Kind = ModuleKind.Dll,
+                       });
                }
 
                [Test]
index b59c90e0e4ad7c7d21b294363a37ef4864624696..29e607882e3ad622a6f555b81d636bef760b3a61 100644 (file)
@@ -1,4 +1,3 @@
-using System;
 using System.Linq;
 
 using Mono.Cecil;
@@ -7,6 +6,7 @@ using Xamarin.Forms.Build.Tasks;
 
 using NUnit.Framework;
 using System.Collections.Generic;
+using Xamarin.Forms.Xaml.UnitTests;
 
 namespace Xamarin.Forms.XamlcUnitTests
 {
@@ -23,9 +23,13 @@ namespace Xamarin.Forms.XamlcUnitTests
                }
 
                [SetUp]
-               public void SetUp ()
+               public void SetUp()
                {
-                       module = ModuleDefinition.CreateModule ("foo", ModuleKind.Dll);
+                       module = ModuleDefinition.CreateModule("foo", new ModuleParameters()
+                       {
+                               AssemblyResolver = new MockAssemblyResolver(),
+                               Kind = ModuleKind.Dll,
+                       });
                }
 
                [Test]
index cdff5ca8547f24d6263a77299ae21b8c2ddca4fa..773f3e6c7d333060438e565e7ba18830b1fffd73 100644 (file)
@@ -2,7 +2,7 @@ using System;
 using NUnit.Framework.Constraints;
 
 namespace Xamarin.Forms.Xaml.UnitTests
-{      
+{
        public class XamlParseExceptionConstraint : ExceptionTypeConstraint
        {
                bool haslineinfo;
@@ -10,13 +10,14 @@ namespace Xamarin.Forms.Xaml.UnitTests
                int lineposition;
                Func<string, bool> messagePredicate;
 
-               XamlParseExceptionConstraint (bool haslineinfo) : base (typeof (XamlParseException))
+               XamlParseExceptionConstraint(bool haslineinfo) : base(typeof(XamlParseException))
                {
                        this.haslineinfo = haslineinfo;
-                       DisplayName = "xamlparse";
                }
 
-               public XamlParseExceptionConstraint () : this (false)
+               public override string DisplayName => "xamlparse";
+
+               public XamlParseExceptionConstraint() : this(false)
                {
                }
 
@@ -27,9 +28,8 @@ namespace Xamarin.Forms.Xaml.UnitTests
                        this.messagePredicate = messagePredicate;
                }
 
-               public override bool Matches (object actual)
+               protected override bool Matches (object actual)
                {
-                       this.actual = actual;
                        if (!base.Matches (actual))
                                return false;
                        var xmlInfo = ((XamlParseException)actual).XmlInfo;
@@ -43,25 +43,30 @@ namespace Xamarin.Forms.Xaml.UnitTests
                        return xmlInfo.LineNumber == linenumber && xmlInfo.LinePosition == lineposition;
                }
 
-               public override void WriteDescriptionTo (MessageWriter writer)
+               public override string Description
                {
-                       base.WriteDescriptionTo (writer);
-                       if (haslineinfo)
-                               writer.Write (string.Format (" line {0}, position {1}", linenumber, lineposition));
-               }
-
-               public override void WriteActualValueTo (MessageWriter writer)
-               {
-                       var ex = actual as XamlParseException;
-                       writer.WriteActualValue ((actual == null) ? null : actual.GetType ());
-                       if (ex != null) {
-                               if (ex.XmlInfo != null && ex.XmlInfo.HasLineInfo ())
-                                       writer.Write (" line {0}, position {1}", ex.XmlInfo.LineNumber, ex.XmlInfo.LinePosition);
-                               else 
-                                       writer.Write (" no line info");
-                               writer.WriteLine (" ({0})", ex.Message);
-                               writer.Write (ex.StackTrace);
+                       get
+                       {
+                               if (haslineinfo)
+                               {
+                                       return string.Format($"{base.Description} line {linenumber}, position {lineposition}");
+                               }
+                               return base.Description;
                        }
                }
+
+               //public override void WriteActualValueTo (MessageWriter writer)
+               //{
+               //      var ex = actual as XamlParseException;
+               //      writer.WriteActualValue ((actual == null) ? null : actual.GetType ());
+               //      if (ex != null) {
+               //              if (ex.XmlInfo != null && ex.XmlInfo.HasLineInfo ())
+               //                      writer.Write (" line {0}, position {1}", ex.XmlInfo.LineNumber, ex.XmlInfo.LinePosition);
+               //              else 
+               //                      writer.Write (" no line info");
+               //              writer.WriteLine (" ({0})", ex.Message);
+               //              writer.Write (ex.StackTrace);
+               //      }
+               //}
        }
 }
\ No newline at end of file