/
githubmirror
/
roslyn
Обзор
Документация
Войти
/
githubmirror
/
roslyn
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/Tools/RunTests/ITestExecutor.cs
95 строк
4 KB
Copilot
Remove superfluous `src/Tools/Source` directory level (#83484)
30 апр 2026, 06:54
Не верифицирован
30 апр 2026, 06:54
2933275
Код
Авторство
О чём код?
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. using System; using System.Collections.Immutable; namespace RunTests { internal readonly struct TestExecutionOptions { internal string DotnetFilePath { get; } internal string TestResultsDirectory { get; } internal string? TestFilter { get; } internal bool IncludeHtml { get; } internal bool Retry { get; } internal bool CollectDumps { get; } internal TestExecutionOptions(string dotnetFilePath, string testResultsDirectory, string? testFilter, bool includeHtml, bool retry, bool collectDumps) { DotnetFilePath = dotnetFilePath; TestResultsDirectory = testResultsDirectory; TestFilter = testFilter; IncludeHtml = includeHtml; Retry = retry; CollectDumps = collectDumps; } } /// <summary> /// The actual results from running the xunit tests. /// </summary> /// <remarks> /// The difference between <see cref="TestResultInfo"/> and <see cref="TestResult"/> is the former /// is specifically for the actual test execution results while the latter can contain extra metadata /// about the results. For example whether it was cached, or had diagnostic, output, etc ... /// </remarks> internal readonly struct TestResultInfo { internal int ExitCode { get; } internal TimeSpan Elapsed { get; } internal string StandardOutput { get; } internal string ErrorOutput { get; } /// <summary> /// Path to the XML results file. /// </summary> internal string? ResultsFilePath { get; } /// <summary> /// Path to the HTML results file if HTML output is enabled, otherwise, <see langword="null"/>. /// </summary> internal string? HtmlResultsFilePath { get; } internal TestResultInfo(int exitCode, string? resultsFilePath, string? htmlResultsFilePath, TimeSpan elapsed, string standardOutput, string errorOutput) { ExitCode = exitCode; ResultsFilePath = resultsFilePath; HtmlResultsFilePath = htmlResultsFilePath; Elapsed = elapsed; StandardOutput = standardOutput; ErrorOutput = errorOutput; } } internal readonly struct TestResult { internal TestResultInfo TestResultInfo { get; } internal WorkItemInfo WorkItemInfo { get; } internal string CommandLine { get; } internal string? Diagnostics { get; } /// <summary> /// Collection of processes the runner explicitly ran to get the result. /// </summary> internal ImmutableArray<ProcessResult> ProcessResults { get; } internal string DisplayName => WorkItemInfo.DisplayName; internal bool Succeeded => ExitCode == 0; internal int ExitCode => TestResultInfo.ExitCode; internal TimeSpan Elapsed => TestResultInfo.Elapsed; internal string StandardOutput => TestResultInfo.StandardOutput; internal string ErrorOutput => TestResultInfo.ErrorOutput; internal string? ResultsDisplayFilePath => TestResultInfo.HtmlResultsFilePath ?? TestResultInfo.ResultsFilePath; internal TestResult(WorkItemInfo workItemInfo, TestResultInfo testResultInfo, string commandLine, ImmutableArray<ProcessResult> processResults = default, string? diagnostics = null) { WorkItemInfo = workItemInfo; TestResultInfo = testResultInfo; CommandLine = commandLine; ProcessResults = processResults.IsDefault ? ImmutableArray<ProcessResult>.Empty : processResults; Diagnostics = diagnostics; } } }