From bea811547e84126fa04bc3a763fb1234f1fdd48b Mon Sep 17 00:00:00 2001 From: Jared Parsons Date: Wed, 2 Mar 2016 08:01:55 -0800 Subject: [PATCH] Factored out some common data --- src/Tools/Source/RunTests/Cache/CachingTestExecutor.cs | 3 ++- src/Tools/Source/RunTests/Cache/WebDataStorage.cs | 3 +-- src/Tools/Source/RunTests/Constants.cs | 6 +++++- src/Tools/Source/RunTests/ITestExecutor.cs | 4 +++- src/Tools/Source/RunTests/ProcessTestExecutor.cs | 3 ++- src/Tools/Source/RunTests/Program.cs | 3 +-- src/Tools/Source/RunTests/RunTests.csproj | 2 +- 7 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src/Tools/Source/RunTests/Cache/CachingTestExecutor.cs b/src/Tools/Source/RunTests/Cache/CachingTestExecutor.cs index 59d69e4ef3b..30dfef87225 100644 --- a/src/Tools/Source/RunTests/Cache/CachingTestExecutor.cs +++ b/src/Tools/Source/RunTests/Cache/CachingTestExecutor.cs @@ -76,7 +76,8 @@ private TestResult Migrate(string assemblyPath, CachedTestResult cachedTestResul commandLine: commandLine, elapsed: TimeSpan.FromMilliseconds(0), standardOutput: cachedTestResult.StandardOutput, - errorOutput: cachedTestResult.ErrorOutput); + errorOutput: cachedTestResult.ErrorOutput, + isResultFromCache: true); } private async Task CacheTestResult(ContentFile contentFile, TestResult testResult) diff --git a/src/Tools/Source/RunTests/Cache/WebDataStorage.cs b/src/Tools/Source/RunTests/Cache/WebDataStorage.cs index e121de34884..161adbc9712 100644 --- a/src/Tools/Source/RunTests/Cache/WebDataStorage.cs +++ b/src/Tools/Source/RunTests/Cache/WebDataStorage.cs @@ -20,9 +20,8 @@ internal sealed class WebDataStorage : IDataStorage private const string NameResultsFileName = "ResultsFileName"; private const string NameResultsFileContent = "ResultsFileContent"; private const string NameEllapsedSeconds = "EllapsedSeconds"; - private const string DashboardUriString = "http://jdash.azurewebsites.net"; - private readonly RestClient _restClient = new RestClient(DashboardUriString); + private readonly RestClient _restClient = new RestClient(Constants.DashboardUriString); public async Task AddCachedTestResult(ContentFile contentFile, CachedTestResult testResult) { diff --git a/src/Tools/Source/RunTests/Constants.cs b/src/Tools/Source/RunTests/Constants.cs index f18e3a82be6..7fe04a38fdd 100644 --- a/src/Tools/Source/RunTests/Constants.cs +++ b/src/Tools/Source/RunTests/Constants.cs @@ -10,6 +10,10 @@ namespace RunTests { internal static class Constants { - internal const string ResultsDirectoryName = "xUnitResults"; + internal static string ResultsDirectoryName => "xUnitResults"; + + internal static bool IsJenkinsRun => !string.IsNullOrEmpty(Environment.GetEnvironmentVariable("JENKINS_URL")); + + internal static string DashboardUriString => "http://jdash.azurewebsites.net"; } } diff --git a/src/Tools/Source/RunTests/ITestExecutor.cs b/src/Tools/Source/RunTests/ITestExecutor.cs index 28713ab395d..e6044af7da4 100644 --- a/src/Tools/Source/RunTests/ITestExecutor.cs +++ b/src/Tools/Source/RunTests/ITestExecutor.cs @@ -16,6 +16,7 @@ internal struct TestResult internal TimeSpan Elapsed { get; } internal string StandardOutput { get; } internal string ErrorOutput { get; } + internal bool IsResultFromCache { get; } /// /// Path to the results file. Can be null in the case xunit error'd and did not create one. @@ -25,7 +26,7 @@ internal struct TestResult internal string ResultDir { get; } internal bool Succeeded => ExitCode == 0; - internal TestResult(int exitCode, string assemblyPath, string resultDir, string resultsFilePath, string commandLine, TimeSpan elapsed, string standardOutput, string errorOutput) + internal TestResult(int exitCode, string assemblyPath, string resultDir, string resultsFilePath, string commandLine, TimeSpan elapsed, string standardOutput, string errorOutput, bool isResultFromCache) { ExitCode = exitCode; AssemblyName = Path.GetFileName(assemblyPath); @@ -36,6 +37,7 @@ internal TestResult(int exitCode, string assemblyPath, string resultDir, string Elapsed = elapsed; StandardOutput = standardOutput; ErrorOutput = errorOutput; + IsResultFromCache = isResultFromCache; } } diff --git a/src/Tools/Source/RunTests/ProcessTestExecutor.cs b/src/Tools/Source/RunTests/ProcessTestExecutor.cs index d8a76c1699a..0ea5e1ca8e4 100644 --- a/src/Tools/Source/RunTests/ProcessTestExecutor.cs +++ b/src/Tools/Source/RunTests/ProcessTestExecutor.cs @@ -125,7 +125,8 @@ public async Task RunTestAsync(string assemblyPath, CancellationToke commandLine: commandLine, elapsed: span, standardOutput: standardOutput, - errorOutput: errorOutput); + errorOutput: errorOutput, + isResultFromCache: false); } catch (Exception ex) { diff --git a/src/Tools/Source/RunTests/Program.cs b/src/Tools/Source/RunTests/Program.cs index e133a54cf9c..6d7c54cdaf4 100644 --- a/src/Tools/Source/RunTests/Program.cs +++ b/src/Tools/Source/RunTests/Program.cs @@ -37,8 +37,7 @@ internal static int Main(string[] args) // and Jenkins runs by default until we work on this a bit more. Anyone reading this who wants // to try it out should feel free to opt into this. IDataStorage dataStorage = new LocalDataStorage(); - if (StringComparer.OrdinalIgnoreCase.Equals("REDMOND", Environment.UserDomainName) || - !string.IsNullOrEmpty(Environment.GetEnvironmentVariable("JENKINS_URL"))) + if (StringComparer.OrdinalIgnoreCase.Equals("REDMOND", Environment.UserDomainName) || Constants.IsJenkinsRun) { Console.WriteLine("Using web cache"); dataStorage = new WebDataStorage(); diff --git a/src/Tools/Source/RunTests/RunTests.csproj b/src/Tools/Source/RunTests/RunTests.csproj index 08044d3caca..6c7a9e74cff 100644 --- a/src/Tools/Source/RunTests/RunTests.csproj +++ b/src/Tools/Source/RunTests/RunTests.csproj @@ -50,4 +50,4 @@ - + \ No newline at end of file -- GitLab