public override bool Execute() { var traceEnabledValue = Environment.GetEnvironmentVariable("VSTEST_BUILD_TRACE"); Tracing.traceEnabled = !string.IsNullOrEmpty(traceEnabledValue) && traceEnabledValue.Equals("1", StringComparison.OrdinalIgnoreCase); vsTestForwardingApp = new VSTestForwardingApp(this.VSTestConsolePath, this.CreateArgument()); if (!string.IsNullOrEmpty(this.VSTestFramework)) { Console.WriteLine("Test run for {0}({1})", this.TestFileFullPath, this.VSTestFramework); } return(vsTestForwardingApp.Execute() == 0); }
public override bool Execute() { var traceEnabledValue = Environment.GetEnvironmentVariable("VSTEST_BUILD_TRACE"); Tracing.traceEnabled = !string.IsNullOrEmpty(traceEnabledValue) && traceEnabledValue.Equals("1", StringComparison.OrdinalIgnoreCase); var debugEnabled = Environment.GetEnvironmentVariable("VSTEST_BUILD_DEBUG"); if (!string.IsNullOrEmpty(debugEnabled) && debugEnabled.Equals("1", StringComparison.Ordinal)) { Console.WriteLine("Waiting for debugger attach..."); var currentProcess = Process.GetCurrentProcess(); Console.WriteLine(string.Format("Process Id: {0}, Name: {1}", currentProcess.Id, currentProcess.ProcessName)); while (!Debugger.IsAttached) { Thread.Sleep(1000); } Debugger.Break(); } // Avoid logging "Task returned false but did not log an error." on test failure, because we don't // write MSBuild error. https://github.com/dotnet/msbuild/blob/51a1071f8871e0c93afbaf1b2ac2c9e59c7b6491/src/Framework/IBuildEngine7.cs#L12 var allowfailureWithoutError = BuildEngine.GetType().GetProperty("AllowFailureWithoutError"); allowfailureWithoutError?.SetValue(BuildEngine, true); vsTestForwardingApp = new VSTestForwardingApp(this.VSTestConsolePath, this.CreateArgument()); if (!string.IsNullOrEmpty(this.VSTestFramework)) { Console.WriteLine(Resources.TestRunningSummary, this.TestFileFullPath, this.VSTestFramework); } return(vsTestForwardingApp.Execute() == 0); }