Skip to content
Closed
Show file tree
Hide file tree
Changes from 9 commits
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
100 changes: 100 additions & 0 deletions docs/ArtifactNamingService.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
# Artifact Naming Service

The artifact naming service provides a standardized way to generate consistent names and paths for test artifacts across all extensions.

## Features

### Template-Based Naming

Check failure on line 7 in docs/ArtifactNamingService.md

View workflow job for this annotation

GitHub Actions / lint

Headings should be surrounded by blank lines

docs/ArtifactNamingService.md:7 MD022/blanks-around-headings Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "### Template-Based Naming"] https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md022.md
Comment thread
Evangelink marked this conversation as resolved.
Use placeholders in angle brackets to create dynamic file names:

```

Check failure on line 10 in docs/ArtifactNamingService.md

View workflow job for this annotation

GitHub Actions / lint

Fenced code blocks should have a language specified

docs/ArtifactNamingService.md:10 MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"] https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md040.md
Comment thread
Evangelink marked this conversation as resolved.
Outdated
<pname>_<pid>_<id>_hang.dmp
```

Check failure on line 12 in docs/ArtifactNamingService.md

View workflow job for this annotation

GitHub Actions / lint

Fenced code blocks should be surrounded by blank lines

docs/ArtifactNamingService.md:12 MD031/blanks-around-fences Fenced code blocks should be surrounded by blank lines [Context: "```"] https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md031.md
Comment thread
Evangelink marked this conversation as resolved.
Resolves to: `MyTests_12345_a1b2c3d4_hang.dmp`

### Complex Path Templates

Check failure on line 15 in docs/ArtifactNamingService.md

View workflow job for this annotation

GitHub Actions / lint

Headings should be surrounded by blank lines

docs/ArtifactNamingService.md:15 MD022/blanks-around-headings Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "### Complex Path Templates"] https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md022.md
Comment thread
Evangelink marked this conversation as resolved.
Create structured directory layouts:

```

Check failure on line 18 in docs/ArtifactNamingService.md

View workflow job for this annotation

GitHub Actions / lint

Fenced code blocks should have a language specified

docs/ArtifactNamingService.md:18 MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"] https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md040.md
<root>/artifacts/<os>/<asm>/dumps/<pname>_<pid>_<tfm>_<time>.dmp
```

Check failure on line 20 in docs/ArtifactNamingService.md

View workflow job for this annotation

GitHub Actions / lint

Fenced code blocks should be surrounded by blank lines

docs/ArtifactNamingService.md:20 MD031/blanks-around-fences Fenced code blocks should be surrounded by blank lines [Context: "```"] https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md031.md
Comment thread
Evangelink marked this conversation as resolved.
Resolves to: `c:/myproject/artifacts/linux/MyTests/dumps/my-child-process_10001_net9.0_2025-09-22T13:49:34.dmp`

### Available Placeholders

| Placeholder | Description | Example |
|-------------|-------------|---------|
| `<pname>` | Name of the process | `MyTests` |
| `<pid>` | Process ID | `12345` |
| `<id>` | Short random identifier (8 chars) | `a1b2c3d4` |
| `<os>` | Operating system | `windows`, `linux`, `macos` |
| `<asm>` | Assembly name | `MyTests` |
| `<tfm>` | Target framework moniker | `net9.0`, `net8.0` |
| `<time>` | Timestamp (1-second precision) | `2025-09-22T13:49:34` |
| `<root>` | Project root directory | Found via solution/git/working dir |

### Backward Compatibility

Check failure on line 36 in docs/ArtifactNamingService.md

View workflow job for this annotation

GitHub Actions / lint

Headings should be surrounded by blank lines

docs/ArtifactNamingService.md:36 MD022/blanks-around-headings Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "### Backward Compatibility"] https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md022.md
Comment thread
Evangelink marked this conversation as resolved.
Legacy patterns are still supported:

```csharp
// Old pattern
"myfile_%p.dmp"

// Works with legacy support
service.ResolveTemplateWithLegacySupport("myfile_%p.dmp",
legacyReplacements: new Dictionary<string, string> { ["%p"] = "12345" });
```

### Custom Replacements

Check failure on line 48 in docs/ArtifactNamingService.md

View workflow job for this annotation

GitHub Actions / lint

Headings should be surrounded by blank lines

docs/ArtifactNamingService.md:48 MD022/blanks-around-headings Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "### Custom Replacements"] https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md022.md
Comment thread
Evangelink marked this conversation as resolved.
Override default values for specific scenarios:

```csharp
// When dumping a different process than the test host
var customReplacements = new Dictionary<string, string>
{
["pname"] = "Notepad",
["pid"] = "1111"
};

string result = service.ResolveTemplate("<pname>_<pid>.dmp", customReplacements);
// Result: "Notepad_1111.dmp"
```

## Usage in Extensions

Extensions can use the service through dependency injection:

```csharp
public class MyExtension
{
private readonly IArtifactNamingService _artifactNamingService;

public MyExtension(IServiceProvider serviceProvider)
{
_artifactNamingService = serviceProvider.GetArtifactNamingService();
}

public void CreateArtifact(string template)
{
string fileName = _artifactNamingService.ResolveTemplate(template);
// Use fileName for artifact creation
}
}
```

## Hang Dump Integration

The hang dump extension now uses the artifact naming service and supports both legacy and modern patterns:

```bash
# Legacy pattern (still works)
--hangdump-filename "mydump_%p.dmp"

# New template pattern
--hangdump-filename "<pname>_<pid>_<id>_hang.dmp"

# Complex path template
--hangdump-filename "<root>/dumps/<os>/<pname>_<pid>_<time>.dmp"
```

This provides consistent artifact naming across all extensions while maintaining backward compatibility.

Check failure on line 100 in docs/ArtifactNamingService.md

View workflow job for this annotation

GitHub Actions / lint

Files should end with a single newline character

docs/ArtifactNamingService.md:100:104 MD047/single-trailing-newline Files should end with a single newline character https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md047.md
Comment thread
Evangelink marked this conversation as resolved.
Outdated
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
using Microsoft.Testing.Platform.Logging;
using Microsoft.Testing.Platform.Messages;
using Microsoft.Testing.Platform.OutputDevice;
using Microsoft.Testing.Platform.Services;

#if NETCOREAPP
using Microsoft.Diagnostics.NETCore.Client;
Expand Down Expand Up @@ -45,6 +46,7 @@ internal sealed class HangDumpProcessLifetimeHandler : ITestHostProcessLifetimeH
private readonly ILogger<HangDumpProcessLifetimeHandler> _logger;
private readonly ManualResetEventSlim _waitConsumerPipeName = new(false);
private readonly List<string> _dumpFiles = [];
private readonly IArtifactNamingService _artifactNamingService;

private TimeSpan? _activityTimerValue;
private Timer? _activityTimer;
Expand All @@ -66,7 +68,8 @@ public HangDumpProcessLifetimeHandler(
ILoggerFactory loggerFactory,
IConfiguration configuration,
IProcessHandler processHandler,
IClock clock)
IClock clock,
IArtifactNamingService artifactNamingService)
{
_logger = loggerFactory.CreateLogger<HangDumpProcessLifetimeHandler>();
_traceEnabled = _logger.IsEnabled(LogLevel.Trace);
Expand All @@ -79,6 +82,7 @@ public HangDumpProcessLifetimeHandler(
_configuration = configuration;
_processHandler = processHandler;
_clock = clock;
_artifactNamingService = artifactNamingService;
}

public string Uid => nameof(HangDumpProcessLifetimeHandler);
Expand Down Expand Up @@ -119,10 +123,10 @@ public async Task BeforeTestHostProcessStartAsync(CancellationToken cancellation

_waitConnectionTask = _task.Run(
async () =>
{
await _logger.LogDebugAsync($"Waiting for connection to {_singleConnectionNamedPipeServer.PipeName.Name}").ConfigureAwait(false);
await _singleConnectionNamedPipeServer.WaitConnectionAsync(cancellationToken).TimeoutAfterAsync(TimeoutHelper.DefaultHangTimeSpanTimeout, cancellationToken).ConfigureAwait(false);
}, cancellationToken);
{
await _logger.LogDebugAsync($"Waiting for connection to {_singleConnectionNamedPipeServer.PipeName.Name}").ConfigureAwait(false);
await _singleConnectionNamedPipeServer.WaitConnectionAsync(cancellationToken).TimeoutAfterAsync(TimeoutHelper.DefaultHangTimeSpanTimeout, cancellationToken).ConfigureAwait(false);
}, cancellationToken);
}

private async Task<IResponse> CallbackAsync(IRequest request)
Expand Down Expand Up @@ -325,7 +329,14 @@ private async Task TakeDumpAsync(IProcess process, CancellationToken cancellatio
ApplicationStateGuard.Ensure(_testHostProcessInformation is not null);
ApplicationStateGuard.Ensure(_dumpType is not null);

string finalDumpFileName = (_dumpFileNamePattern ?? $"{process.Name}_%p_hang.dmp").Replace("%p", process.Id.ToString(CultureInfo.InvariantCulture));
var customReplacements = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase)
{
["pname"] = process.Name,
["pid"] = process.Id.ToString(CultureInfo.InvariantCulture),
["%p"] = process.Id.ToString(CultureInfo.InvariantCulture),
};

string finalDumpFileName = _artifactNamingService.ResolveTemplate(_dumpFileNamePattern ?? $"{process.Name}_%p_hang.dmp", customReplacements);
finalDumpFileName = Path.Combine(_configuration.GetTestResultDirectory(), finalDumpFileName);

ApplicationStateGuard.Ensure(_namedPipeClient is not null);
Expand All @@ -349,7 +360,6 @@ private async Task TakeDumpAsync(IProcess process, CancellationToken cancellatio
}

await _logger.LogInformationAsync($"Creating dump filename {finalDumpFileName}").ConfigureAwait(false);

await _outputDisplay.DisplayAsync(new ErrorMessageOutputDeviceData(string.Format(CultureInfo.InvariantCulture, ExtensionResources.CreatingDumpFile, finalDumpFileName)), cancellationToken).ConfigureAwait(false);

#if NETCOREAPP
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ internal interface IEnvironment
string? ProcessPath { get; }
#endif

Version Version { get; }

string[] GetCommandLineArgs();

string? GetEnvironmentVariable(string name);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ internal sealed class SystemEnvironment : IEnvironment
public string? ProcessPath => Environment.ProcessPath;
#endif

public Version Version => Environment.Version;

public string[] GetCommandLineArgs() => Environment.GetCommandLineArgs();

public string? GetEnvironmentVariable(string name) => Environment.GetEnvironmentVariable(name);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,10 @@
serviceProvider.TryAddService(systemMonitor);
SystemMonitorAsyncFactory systemMonitorAsyncFactory = new();
serviceProvider.TryAddService(systemMonitorAsyncFactory);

Check failure on line 109 in src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs

View check run for this annotation

Azure Pipelines / microsoft.testfx (Build Linux Debug)

src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs#L109

src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs(109,1): error IDE0055: (NETCORE_ENGINEERING_TELEMETRY=Build) Fix formatting (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0055)

Check failure on line 109 in src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs

View check run for this annotation

Azure Pipelines / microsoft.testfx (Build Linux Debug)

src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs#L109

src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs(109,1): error SA1028: (NETCORE_ENGINEERING_TELEMETRY=Build) Code should not contain trailing whitespace (https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1028.md)

Check failure on line 109 in src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs

View check run for this annotation

Azure Pipelines / microsoft.testfx (Build Linux Debug)

src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs#L109

src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs(109,1): error IDE0055: (NETCORE_ENGINEERING_TELEMETRY=Build) Fix formatting (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0055)

Check failure on line 109 in src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs

View check run for this annotation

Azure Pipelines / microsoft.testfx (Build Linux Debug)

src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs#L109

src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs(109,1): error SA1028: (NETCORE_ENGINEERING_TELEMETRY=Build) Code should not contain trailing whitespace (https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1028.md)

Check failure on line 109 in src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs

View check run for this annotation

Azure Pipelines / microsoft.testfx (Build Linux Debug)

src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs#L109

src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs(109,1): error IDE0055: (NETCORE_ENGINEERING_TELEMETRY=Build) Fix formatting (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0055)

Check failure on line 109 in src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs

View check run for this annotation

Azure Pipelines / microsoft.testfx (Build Linux Release)

src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs#L109

src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs(109,1): error IDE0055: (NETCORE_ENGINEERING_TELEMETRY=Build) Fix formatting (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0055)

Check failure on line 109 in src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs

View check run for this annotation

Azure Pipelines / microsoft.testfx (Build Linux Release)

src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs#L109

src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs(109,1): error SA1028: (NETCORE_ENGINEERING_TELEMETRY=Build) Code should not contain trailing whitespace (https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1028.md)

Check failure on line 109 in src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs

View check run for this annotation

Azure Pipelines / microsoft.testfx (Build Linux Release)

src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs#L109

src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs(109,1): error IDE0055: (NETCORE_ENGINEERING_TELEMETRY=Build) Fix formatting (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0055)

Check failure on line 109 in src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs

View check run for this annotation

Azure Pipelines / microsoft.testfx (Build Linux Release)

src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs#L109

src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs(109,1): error SA1028: (NETCORE_ENGINEERING_TELEMETRY=Build) Code should not contain trailing whitespace (https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1028.md)

Check failure on line 109 in src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs

View check run for this annotation

Azure Pipelines / microsoft.testfx (Build Linux Release)

src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs#L109

src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs(109,1): error IDE0055: (NETCORE_ENGINEERING_TELEMETRY=Build) Fix formatting (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0055)

Check failure on line 109 in src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs

View check run for this annotation

Azure Pipelines / microsoft.testfx (Build MacOS Release)

src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs#L109

src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs(109,1): error IDE0055: (NETCORE_ENGINEERING_TELEMETRY=Build) Fix formatting (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0055)

Check failure on line 109 in src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs

View check run for this annotation

Azure Pipelines / microsoft.testfx (Build MacOS Release)

src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs#L109

src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs(109,1): error SA1028: (NETCORE_ENGINEERING_TELEMETRY=Build) Code should not contain trailing whitespace (https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1028.md)

Check failure on line 109 in src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs

View check run for this annotation

Azure Pipelines / microsoft.testfx (Build MacOS Release)

src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs#L109

src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs(109,1): error IDE0055: (NETCORE_ENGINEERING_TELEMETRY=Build) Fix formatting (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0055)

Check failure on line 109 in src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs

View check run for this annotation

Azure Pipelines / microsoft.testfx (Build MacOS Release)

src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs#L109

src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs(109,1): error SA1028: (NETCORE_ENGINEERING_TELEMETRY=Build) Code should not contain trailing whitespace (https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1028.md)

Check failure on line 109 in src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs

View check run for this annotation

Azure Pipelines / microsoft.testfx (Build MacOS Debug)

src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs#L109

src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs(109,1): error IDE0055: (NETCORE_ENGINEERING_TELEMETRY=Build) Fix formatting (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0055)

Check failure on line 109 in src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs

View check run for this annotation

Azure Pipelines / microsoft.testfx (Build MacOS Debug)

src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs#L109

src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs(109,1): error SA1028: (NETCORE_ENGINEERING_TELEMETRY=Build) Code should not contain trailing whitespace (https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1028.md)

Check failure on line 109 in src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs

View check run for this annotation

Azure Pipelines / microsoft.testfx (Build MacOS Debug)

src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs#L109

src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs(109,1): error IDE0055: (NETCORE_ENGINEERING_TELEMETRY=Build) Fix formatting (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0055)

Check failure on line 109 in src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs

View check run for this annotation

Azure Pipelines / microsoft.testfx (Build MacOS Debug)

src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs#L109

src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs(109,1): error SA1028: (NETCORE_ENGINEERING_TELEMETRY=Build) Code should not contain trailing whitespace (https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1028.md)

Check failure on line 109 in src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs

View check run for this annotation

Azure Pipelines / microsoft.testfx (Build MacOS Debug)

src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs#L109

src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs(109,1): error IDE0055: (NETCORE_ENGINEERING_TELEMETRY=Build) Fix formatting (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0055)

Check failure on line 109 in src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs

View check run for this annotation

Azure Pipelines / microsoft.testfx

src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs#L109

src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs(109,1): error IDE0055: (NETCORE_ENGINEERING_TELEMETRY=Build) Fix formatting (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0055)

Check failure on line 109 in src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs

View check run for this annotation

Azure Pipelines / microsoft.testfx

src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs#L109

src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs(109,1): error SA1028: (NETCORE_ENGINEERING_TELEMETRY=Build) Code should not contain trailing whitespace (https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1028.md)

Check failure on line 109 in src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs

View check run for this annotation

Azure Pipelines / microsoft.testfx

src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs#L109

src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs(109,1): error IDE0055: (NETCORE_ENGINEERING_TELEMETRY=Build) Fix formatting (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0055)

Check failure on line 109 in src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs

View check run for this annotation

Azure Pipelines / microsoft.testfx

src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs#L109

src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs(109,1): error SA1028: (NETCORE_ENGINEERING_TELEMETRY=Build) Code should not contain trailing whitespace (https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1028.md)
Comment thread
Evangelink marked this conversation as resolved.
Outdated
// Add artifact naming service
ArtifactNamingService artifactNamingService = new(_testApplicationModuleInfo, systemEnvironment, systemClock, processHandler);
serviceProvider.TryAddService(artifactNamingService);

PlatformInformation platformInformation = new();
serviceProvider.AddService(platformInformation);
Expand Down
Loading
Loading