Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -84,14 +84,15 @@ internal async Task<TestResult[]> ExecuteAsync(string? initializationLogs, strin
}

#pragma warning disable IDE0056 // Use index operator
TestResult lastResult = result[result.Length - 1];
result[result.Length - 1] = new TestResult
{
TestFailureException = new TestFailedException(UnitTestOutcome.Error, ex.TryGetMessage(), ex.TryGetStackTraceInformation()),
LogOutput = result[result.Length - 1].LogOutput,
LogError = result[result.Length - 1].LogError,
DebugTrace = result[result.Length - 1].DebugTrace,
TestContextMessages = result[result.Length - 1].TestContextMessages,
Duration = result[result.Length - 1].Duration,
LogOutput = lastResult.LogOutput,
LogError = lastResult.LogError,
DebugTrace = lastResult.DebugTrace,
TestContextMessages = lastResult.TestContextMessages,
Duration = lastResult.Duration,
};
#pragma warning restore IDE0056 // Use index operator
}
Expand Down Expand Up @@ -167,7 +168,7 @@ internal async Task<TestResult[]> RunTestMethodAsync()
// In case of data driven, set parent info in results.
if (isDataDriven)
{
results = UpdateResultsWithParentInfo(results);
UpdateResultsWithParentInfo(results);
}

// Set a result in case no result is present.
Expand Down Expand Up @@ -214,13 +215,13 @@ private async Task<bool> TryExecuteFoldedDataDrivenTestsAsync(List<TestResult> r
continue;
}

IEnumerable<object?[]>? dataSource;

// This code is to execute tests. To discover the tests code is in AssemblyEnumerator.ProcessTestDataSourceTests.
// Any change made here should be reflected in AssemblyEnumerator.ProcessTestDataSourceTests as well.
dataSource = testDataSource.GetData(_testMethodInfo.MethodInfo);
IReadOnlyList<object?[]> dataSource = testDataSource.GetData(_testMethodInfo.MethodInfo) is IReadOnlyList<object?[]> dataList
? dataList
: testDataSource.GetData(_testMethodInfo.MethodInfo).ToList();

if (!dataSource.Any())
if (dataSource.Count == 0)
{
if (!MSTestSettings.CurrentSettings.ConsiderEmptyDataSourceAsInconclusive)
{
Expand Down Expand Up @@ -255,8 +256,7 @@ private async Task<bool> TryExecuteFoldedDataDrivenTestsAsync(List<TestResult> r

private async Task ExecuteTestFromDataSourceAttributeAsync(List<TestResult> results)
{
Stopwatch watch = new();
watch.Start();
var watch = Stopwatch.StartNew();

try
{
Expand Down Expand Up @@ -449,9 +449,9 @@ private static UnitTestOutcome GetAggregateOutcome(List<TestResult> results)

// Get aggregate outcome.
UnitTestOutcome aggregateOutcome = results[0].Outcome;
foreach (TestResult result in results)
for (int i = 1; i < results.Count; i++)
{
aggregateOutcome = aggregateOutcome.GetMoreImportantOutcome(result.Outcome);
aggregateOutcome = aggregateOutcome.GetMoreImportantOutcome(results[i].Outcome);
}

return aggregateOutcome;
Expand All @@ -462,26 +462,12 @@ private static UnitTestOutcome GetAggregateOutcome(List<TestResult> results)
/// Add parent results as first result in updated result.
/// </summary>
/// <param name="results">Results.</param>
/// <returns>Updated results which contains parent result as first result. All other results contains parent result info.</returns>
private static List<TestResult> UpdateResultsWithParentInfo(List<TestResult> results)
private static void UpdateResultsWithParentInfo(List<TestResult> results)
{
// Return results in case there are no results.
if (results.Count == 0)
{
return results;
}

// UpdatedResults contain parent result at first position and remaining results has parent info updated.
var updatedResults = new List<TestResult>();

foreach (TestResult result in results)
{
result.ExecutionId = Guid.NewGuid();
result.ParentExecId = Guid.NewGuid();

updatedResults.Add(result);
}

return updatedResults;
}
}
Loading