From 635da5b73abdb5f6b1e3a5595c3a988385967272 Mon Sep 17 00:00:00 2001 From: Javier Calvarro Nelson Date: Mon, 1 Jul 2019 14:42:11 +0200 Subject: [PATCH] [Templating] Enforce selenium tests runs on the expected platforms (#11602) * Will cause the CI environment to fail if the E2E tests stop running by accident. --- .../test/RazorComponentsTemplateTest.cs | 13 +++++++++++++ .../test/SpaTemplateTest/SpaTemplateTestBase.cs | 8 ++++++++ src/Shared/E2ETesting/BrowserFixture.cs | 9 +++++++++ 3 files changed, 30 insertions(+) diff --git a/src/ProjectTemplates/test/RazorComponentsTemplateTest.cs b/src/ProjectTemplates/test/RazorComponentsTemplateTest.cs index b8c8e34ace..00187e8430 100644 --- a/src/ProjectTemplates/test/RazorComponentsTemplateTest.cs +++ b/src/ProjectTemplates/test/RazorComponentsTemplateTest.cs @@ -56,6 +56,10 @@ namespace Templates.Test aspNetProcess.VisitInBrowser(Browser); TestBasicNavigation(); } + else + { + BrowserFixture.EnforceSupportedConfigurations(); + } } using (var aspNetProcess = Project.StartPublishedProjectAsync()) @@ -70,6 +74,10 @@ namespace Templates.Test aspNetProcess.VisitInBrowser(Browser); TestBasicNavigation(); } + else + { + BrowserFixture.EnforceSupportedConfigurations(); + } } } @@ -106,8 +114,13 @@ namespace Templates.Test aspNetProcess.VisitInBrowser(Browser); TestBasicNavigation(); } + else + { + BrowserFixture.EnforceSupportedConfigurations(); + } } + using (var aspNetProcess = Project.StartPublishedProjectAsync()) { Assert.False( diff --git a/src/ProjectTemplates/test/SpaTemplateTest/SpaTemplateTestBase.cs b/src/ProjectTemplates/test/SpaTemplateTest/SpaTemplateTestBase.cs index c58560acd9..a32ecb54e8 100644 --- a/src/ProjectTemplates/test/SpaTemplateTest/SpaTemplateTestBase.cs +++ b/src/ProjectTemplates/test/SpaTemplateTest/SpaTemplateTestBase.cs @@ -113,6 +113,10 @@ namespace Templates.Test.SpaTemplateTest aspNetProcess.VisitInBrowser(browser); TestBasicNavigation(visitFetchData: shouldVisitFetchData, usesAuth, browser, logs); } + else + { + BrowserFixture.EnforceSupportedConfigurations(); + } } if (usesAuth) @@ -135,6 +139,10 @@ namespace Templates.Test.SpaTemplateTest aspNetProcess.VisitInBrowser(browser); TestBasicNavigation(visitFetchData: shouldVisitFetchData, usesAuth, browser, logs); } + else + { + BrowserFixture.EnforceSupportedConfigurations(); + } } } diff --git a/src/Shared/E2ETesting/BrowserFixture.cs b/src/Shared/E2ETesting/BrowserFixture.cs index 3efdbdc85b..0fa652994f 100644 --- a/src/Shared/E2ETesting/BrowserFixture.cs +++ b/src/Shared/E2ETesting/BrowserFixture.cs @@ -6,6 +6,7 @@ using System.Collections.Concurrent; using System.Diagnostics; using System.Linq; using System.Reflection; +using System.Runtime.InteropServices; using System.Threading.Tasks; using OpenQA.Selenium; using OpenQA.Selenium.Chrome; @@ -28,6 +29,14 @@ namespace Microsoft.AspNetCore.E2ETesting public IMessageSink DiagnosticsMessageSink { get; } + public static void EnforceSupportedConfigurations() + { + // Do not change the current platform support without explicit approval. + Assert.False( + RuntimeInformation.IsOSPlatform(OSPlatform.Windows) && RuntimeInformation.ProcessArchitecture == Architecture.X64, + "Selenium tests should be running in this platform."); + } + public static bool IsHostAutomationSupported() { // We emit an assemblymetadata attribute that reflects the value of SeleniumE2ETestsSupported at build