diff --git a/test/Microsoft.AspNetCore.Localization.FunctionalTests/LocalizationSampleTest.cs b/test/Microsoft.AspNetCore.Localization.FunctionalTests/LocalizationSampleTest.cs index 240439f675..a4bceb4183 100644 --- a/test/Microsoft.AspNetCore.Localization.FunctionalTests/LocalizationSampleTest.cs +++ b/test/Microsoft.AspNetCore.Localization.FunctionalTests/LocalizationSampleTest.cs @@ -12,8 +12,7 @@ namespace Microsoft.AspNetCore.Localization.FunctionalTests { public class LocalizationSampleTest { - private static readonly string _applicationPath = Path.GetFullPath( - Path.Combine(PlatformServices.Default.Application.ApplicationBasePath, "..", "..", "..", "..", "..", "..", "samples", "LocalizationSample")); + private static readonly string _applicationPath = Path.Combine("samples", "LocalizationSample"); [ConditionalTheory] [OSSkipCondition(OperatingSystems.Linux)] diff --git a/test/Microsoft.AspNetCore.Localization.FunctionalTests/LocalizationTest.cs b/test/Microsoft.AspNetCore.Localization.FunctionalTests/LocalizationTest.cs index e93e6601be..5545b2364a 100644 --- a/test/Microsoft.AspNetCore.Localization.FunctionalTests/LocalizationTest.cs +++ b/test/Microsoft.AspNetCore.Localization.FunctionalTests/LocalizationTest.cs @@ -12,8 +12,7 @@ namespace Microsoft.AspNetCore.Localization.FunctionalTests { public class LocalizationTest { - private static readonly string _applicationPath = Path.GetFullPath( - Path.Combine(PlatformServices.Default.Application.ApplicationBasePath, "..", "..", "..", "..", "..", "LocalizationWebsite")); + private static readonly string _applicationPath = Path.Combine("test", "LocalizationWebsite"); [ConditionalTheory] [OSSkipCondition(OperatingSystems.Linux)] diff --git a/test/Microsoft.AspNetCore.Localization.FunctionalTests/TestRunner.cs b/test/Microsoft.AspNetCore.Localization.FunctionalTests/TestRunner.cs index ac10eea9bd..276eeba720 100644 --- a/test/Microsoft.AspNetCore.Localization.FunctionalTests/TestRunner.cs +++ b/test/Microsoft.AspNetCore.Localization.FunctionalTests/TestRunner.cs @@ -2,11 +2,13 @@ // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; +using System.IO; using System.Net; using System.Net.Http; using System.Threading.Tasks; using Microsoft.AspNetCore.Server.Testing; using Microsoft.Extensions.Logging; +using Microsoft.Extensions.PlatformAbstractions; using Xunit; namespace Microsoft.AspNetCore.Localization.FunctionalTests @@ -17,7 +19,27 @@ namespace Microsoft.AspNetCore.Localization.FunctionalTests public TestRunner(string applicationPath) { - _applicationPath = applicationPath; + _applicationPath = Path.Combine(ResolveRootFolder(PlatformServices.Default.Application.ApplicationBasePath), applicationPath); + } + + private static string ResolveRootFolder(string projectFolder) + { + var di = new DirectoryInfo(projectFolder); + + while (di.Parent != null) + { + var globalJsonPath = Path.Combine(di.FullName, "global.json"); + + if (File.Exists(globalJsonPath)) + { + return di.FullName; + } + + di = di.Parent; + } + + // If we don't find any files then make the project folder the root + return projectFolder; } private async Task RunTestAndGetResponse(