Files
csharp/tests/SkipTestLogger/SkipTestLogger.cs
Boshi Lian 5be3cff425 Style fix final (#523)
* all net5

* var

* SA1310

* SA1310

* allow 1031

* SA1805

* fix SA1642

* remove unused code

* allow sa1405

* isempty

* fix CA1714

* fix CA1806

* remove always false if

* fix format

* fix CA1062

* allow SA0001

* fix CA1062

* allow ca1034 and temp allow ca1835

* fix 16XX doc related warnings

* elm SA16XX

* elm SA16XX

* fix CA2213

* revert to pass all test

* move unclear rule to ruleset

* follow up of moving ruleset

* remove this

* fix test flaky
2020-11-22 14:52:09 -08:00

54 lines
1.7 KiB
C#

using System;
using System.Collections.Generic;
using System.IO;
using Microsoft.VisualStudio.TestPlatform.ObjectModel;
using Microsoft.VisualStudio.TestPlatform.ObjectModel.Client;
namespace k8s.E2E
{
// This TestLogger is to log test cases skipped by accident
// when E2E test runs in github action
[FriendlyName("SkipTestLogger")]
[ExtensionUri("logger://Microsoft/TestPlatform/SkipTestLogger/v1")]
public class SkipTestLogger : ITestLoggerWithParameters
{
public void Initialize(TestLoggerEvents events, Dictionary<string, string> parameters)
{
if (parameters != null && parameters.TryGetValue("file", out var file))
{
InnerInitialize(events, file);
}
else
{
throw new ArgumentNullException("file", "log file path must be set");
}
}
private static void InnerInitialize(TestLoggerEvents events, string file)
{
if (events == null)
{
throw new ArgumentNullException(nameof(events));
}
Console.WriteLine($"using {file} for skipped test case log");
events.TestResult += (sender, args) =>
{
using (var w = File.AppendText(file))
{
if (args.Result.Outcome == TestOutcome.Skipped)
{
w.WriteLine(args.Result.DisplayName);
}
}
};
}
public void Initialize(TestLoggerEvents events, string testRunDirectory)
{
InnerInitialize(events, Path.Combine(testRunDirectory, "skip.log"));
}
}
}