private static RunStepResult RefreshTestRuntime(IRunExecutorHost host, RunStartParams rsp, RunStepInfo rsi) { var output = TestRunTimeInstaller.Install(rsp.Solution.BuildRoot.Item); return(RunStepStatus.Succeeded.ToRSR(RunData.NoData, string.Format("Copied Test Runtime: {0}", output))); }
private static RunStepResult RunTests(IRunExecutorHost host, RunStartParams rsp, RunStepInfo rsi) { if (!host.CanContinue()) { throw new OperationCanceledException(); } var output = RunTestHost("execute", rsp); RunStepStatus rss = RunStepStatus.Succeeded; if (output.Item1 != 0) { rss = RunStepStatus.Failed; } var testResults = PerTestIdDResults.Deserialize(FilePath.NewFilePath(rsp.DataFiles.TestResultsStore.Item)); var coverageSession = PerSequencePointIdTestRunId.Deserialize(FilePath.NewFilePath(rsp.DataFiles.CoverageSessionStore.Item)); var testFailureInfo = PerDocumentLocationTestFailureInfo.Deserialize(FilePath.NewFilePath(rsp.DataFiles.TestFailureInfoStore.Item)); return(rss.ToRSR(RunData.NewTestRunOutput(testResults, testFailureInfo, coverageSession), output.Item2)); }
private static RunStepResult DeleteBuildOutput(IRunExecutorHost host, RunStartParams rsp, RunStepInfo rsi) { if (Directory.Exists(rsp.Solution.BuildRoot.Item)) { foreach (var file in Directory.EnumerateFiles(rsp.Solution.BuildRoot.Item, "*.pdb")) { File.Delete(file); var dll = Path.ChangeExtension(file, "dll"); if (File.Exists(dll)) { File.Delete(dll); } } } return(RunStepStatus.Succeeded.ToRSR(RunData.NoData, "What was done - TBD")); }
private static RunStepResult TakeSolutionSnapshot(IRunExecutorHost host, RunStartParams rsp, RunStepInfo rsi) { var solutionGrandParentPath = Path.GetDirectoryName(Path.GetDirectoryName(rsp.Solution.Path.Item)); var projects = VsSolution.GetProjects(host.HostVersion, rsp.Solution.Path.Item).ToList(); var toCopy = new List <Tuple <string, SearchOption> > { new Tuple <string, SearchOption>(Path.GetDirectoryName(rsp.Solution.Path.Item), SearchOption.TopDirectoryOnly), }; Array.ForEach(rsp.Config.SnapshotIncludeFolders, item => { toCopy.Add(new Tuple <string, SearchOption>(Path.Combine(Path.GetDirectoryName(rsp.Solution.Path.Item), item), SearchOption.AllDirectories)); }); projects.ForEach(p => { var projectFile = Path.Combine(Path.GetDirectoryName(rsp.Solution.Path.Item), p.RelativePath); var folder = Path.GetDirectoryName(projectFile); toCopy.Add(new Tuple <string, SearchOption>(folder, SearchOption.AllDirectories)); }); toCopy.ForEach(item => { if (!host.CanContinue()) { throw new OperationCanceledException(); } CopyFiles(rsp, solutionGrandParentPath, item.Item1, item.Item2); }); SnapshotGC.mark(FilePath.NewFilePath(Path.GetDirectoryName(rsp.Solution.SnapshotPath.Item))); TelemetryClient.TrackEvent(rsi.name.Item, new Dictionary <string, string>(), new Dictionary <string, double> { { "ProjectCount", projects.Count } }); return(RunStepStatus.Succeeded.ToRSR(RunData.NoData, "What was done - TBD")); }
private static RunStepResult BuildSolutionSnapshot(IRunExecutorHost host, RunStartParams rsp, RunStepInfo rsi) { var output = ExecuteProcess( Path.Combine( Environment.GetEnvironmentVariable("ProgramFiles(x86)"), string.Format(@"MSBuild\{0}\Bin\msbuild.exe", host.HostVersion)), string.Format( @"/m /v:minimal /p:DebugSymbols=true /p:DebugType=full /p:Optimize=false /p:Configuration=Debug /p:CreateVsixContainer=false /p:DeployExtension=false /p:CopyVsixExtensionFiles=false /p:RunCodeAnalysis=false {0} /p:OutDir=""{1}\\"" ""{2}""", string.Join(" ", (rsp.Config.AdditionalMSBuildProperties ?? new string[0]).Select(it => string.Format("/p:{0}", it))), rsp.Solution.BuildRoot.Item, rsp.Solution.SnapshotPath.Item) ); RunStepStatus rss = RunStepStatus.Succeeded; if (output.Item1 != 0) { rss = RunStepStatus.Failed; } return(rss.ToRSR(RunData.NoData, output.Item2)); }
private static RunStepResult DiscoverUnitTests(IRunExecutorHost host, RunStartParams rsp, RunStepInfo rsi) { if (!host.CanContinue()) { throw new OperationCanceledException(); } var output = RunTestHost("discover", rsp); RunStepStatus rss = RunStepStatus.Succeeded; if (output.Item1 != 0) { rss = RunStepStatus.Failed; } var testsPerAssembly = PerDocumentLocationDTestCases.Deserialize(FilePath.NewFilePath(rsp.DataFiles.DiscoveredUnitDTestsStore.Item)); var totalTests = testsPerAssembly.Values.Aggregate(0, (acc, e) => acc + e.Count); TelemetryClient.TrackEvent(rsi.name.Item, new Dictionary <string, string>(), new Dictionary <string, double> { { "TestCount", totalTests } }); return(rss.ToRSR(RunData.NewTestCases(testsPerAssembly), "Unit Tests Discovered - which ones - TBD")); }
private static RunStepResult DiscoverSequencePoints(IRunExecutorHost host, RunStartParams rsp, RunStepInfo rsi) { var sequencePoint = Instrumentation.GenerateSequencePointInfo(host, rsp); if (sequencePoint != null) { sequencePoint.Serialize(rsp.DataFiles.SequencePointStore); } var totalSP = sequencePoint.Values.Aggregate(0, (acc, e) => acc + e.Count); TelemetryClient.TrackEvent(rsi.name.Item, new Dictionary <string, string>(), new Dictionary <string, double> { { "SequencePointCount", totalSP } }); return(RunStepStatus.Succeeded.ToRSR(RunData.NewSequencePoints(sequencePoint), "Binaries Instrumented - which ones - TBD")); }