Skip to content

Commit dc6a3a0

Browse files
authored
serilog in tests +semver:none (#179)
1 parent 311ad1d commit dc6a3a0

File tree

6 files changed

+39
-48
lines changed

6 files changed

+39
-48
lines changed

src/HydraScript/Program.cs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,7 @@ private static ExecuteCommand GetCommand()
3535
category: "AotAnalysis",
3636
checkId: "IL3050:RequiresDynamicCode",
3737
Justification = SuppressMessage)]
38-
internal static ServiceProvider GetServiceProvider(
39-
FileInfo fileInfo,
40-
bool dump,
41-
Action<IServiceCollection>? configureServices = null)
38+
private static ServiceProvider GetServiceProvider(FileInfo fileInfo, bool dump)
4239
{
4340
var services = new ServiceCollection();
4441
services.AddLogging(c => c.ClearProviders()
@@ -48,7 +45,6 @@ internal static ServiceProvider GetServiceProvider(
4845
.AddDomain()
4946
.AddApplication()
5047
.AddInfrastructure(dump, fileInfo);
51-
configureServices?.Invoke(services);
5248
return services.BuildServiceProvider();
5349
}
5450
}

src/Infrastructure/HydraScript.Infrastructure/ServiceCollectionExtensions.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public static IServiceCollection AddApplication(this IServiceCollection services
3333
.AddStaticAnalysis()
3434
.AddCodeGeneration();
3535

36-
public static void AddInfrastructure(
36+
public static IServiceCollection AddInfrastructure(
3737
this IServiceCollection services,
3838
bool dump,
3939
FileInfo inputFileInfo)
@@ -59,5 +59,7 @@ public static void AddInfrastructure(
5959
}
6060

6161
services.AddSingleton<Executor>();
62+
63+
return services;
6264
}
6365
}

tests/Directory.Packages.props

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,13 @@
55
<PackageVersion Include="AutoFixture.Xunit3" Version="4.19.0" />
66
<PackageVersion Include="Fare" Version="2.2.1" />
77
<PackageVersion Include="AwesomeAssertions" Version="9.2.0" />
8-
<PackageVersion Include="MartinCostello.Logging.XUnit.v3" Version="0.6.0" />
98
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="4.14.0" />
109
<PackageVersion Include="Microsoft.Extensions.Diagnostics.Testing" Version="9.9.0" />
1110
<PackageVersion Include="Microsoft.Testing.Extensions.CodeCoverage" Version="17.14.2" />
1211
<PackageVersion Include="NSubstitute" Version="5.3.0" />
1312
<PackageVersion Include="PolymorphicContracts.AutoFixture" Version="2.0.0" />
13+
<PackageVersion Include="Serilog.Extensions.Logging" Version="9.0.2" />
14+
<PackageVersion Include="Serilog.Sinks.XUnit3" Version="1.1.0" />
1415
<PackageVersion Include="System.Text.RegularExpressions" Version="4.3.1" />
1516
<PackageVersion Include="xunit.v3" Version="3.0.1" />
1617
</ItemGroup>

tests/HydraScript.IntegrationTests/HydraScript.IntegrationTests.csproj

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,10 @@
66

77
<ItemGroup>
88
<PackageReference Include="AwesomeAssertions" />
9-
<PackageReference Include="MartinCostello.Logging.XUnit.v3" />
109
<PackageReference Include="Microsoft.Extensions.Diagnostics.Testing" />
1110
<PackageReference Include="Microsoft.Testing.Extensions.CodeCoverage" />
11+
<PackageReference Include="Serilog.Extensions.Logging" />
12+
<PackageReference Include="Serilog.Sinks.XUnit3" />
1213
</ItemGroup>
1314

1415
<ItemGroup>

tests/HydraScript.IntegrationTests/ImplicitTestOutputHelperAccessor.cs

Lines changed: 0 additions & 12 deletions
This file was deleted.

tests/HydraScript.IntegrationTests/TestHostFixture.cs

Lines changed: 31 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
using Microsoft.Extensions.DependencyInjection;
44
using Microsoft.Extensions.Logging;
55
using NSubstitute;
6+
using Serilog;
7+
using Serilog.Sinks.XUnit3;
68

79
namespace HydraScript.IntegrationTests;
810

@@ -31,39 +33,40 @@ public void Dispose()
3133

3234
public Runner GetRunner(Options options, Action<IServiceCollection>? configureTestServices = null)
3335
{
34-
var serviceProvider = Program.GetServiceProvider(
35-
new FileInfo(options.FileName),
36-
options.Dump,
37-
services =>
36+
var services = new ServiceCollection()
37+
.AddDomain()
38+
.AddApplication()
39+
.AddInfrastructure(options.Dump, new FileInfo(options.FileName));
40+
const string serilogTemplate = "[{Timestamp:HH:mm:ss} {Level:u} [{SourceContext}]] {Message:lj} {Exception}";
41+
services.AddLogging(x => x.ClearProviders()
42+
.AddSerilog(new LoggerConfiguration().WriteTo.XUnit3TestOutput(serilogTemplate).CreateLogger())
43+
.AddFakeLogging(fakeLogOptions =>
3844
{
39-
services.AddLogging(x => x.ClearProviders()
40-
.AddXUnit(new ImplicitTestOutputHelperAccessor())
41-
.AddFakeLogging(fakeLogOptions =>
45+
fakeLogOptions.OutputSink = logMessage => _logMessages.Add(logMessage);
46+
fakeLogOptions.OutputFormatter = fakeLogRecord =>
47+
fakeLogRecord.Level switch
4248
{
43-
fakeLogOptions.OutputSink = logMessage => _logMessages.Add(logMessage);
44-
fakeLogOptions.OutputFormatter = fakeLogRecord =>
45-
fakeLogRecord.Level switch
46-
{
47-
LogLevel.Error => $"{fakeLogRecord.Message} {fakeLogRecord.Exception?.Message}",
48-
_ => fakeLogRecord.ToString()
49-
};
50-
}));
49+
LogLevel.Error => $"{fakeLogRecord.Message} {fakeLogRecord.Exception?.Message}",
50+
_ => fakeLogRecord.ToString()
51+
};
52+
}));
5153

52-
if (options.MockFileSystem)
53-
{
54-
var fileSystem = Substitute.For<IFileSystem>();
55-
services.AddSingleton(fileSystem);
56-
}
54+
if (options.MockFileSystem)
55+
{
56+
var fileSystem = Substitute.For<IFileSystem>();
57+
services.AddSingleton(fileSystem);
58+
}
59+
60+
if (!string.IsNullOrWhiteSpace(options.InMemoryScript))
61+
{
62+
var sourceCodeProvider = Substitute.For<ISourceCodeProvider>();
63+
sourceCodeProvider.GetText().ReturnsForAnyArgs(options.InMemoryScript);
64+
services.AddSingleton(sourceCodeProvider);
65+
}
5766

58-
if (!string.IsNullOrWhiteSpace(options.InMemoryScript))
59-
{
60-
var sourceCodeProvider = Substitute.For<ISourceCodeProvider>();
61-
sourceCodeProvider.GetText().ReturnsForAnyArgs(options.InMemoryScript);
62-
services.AddSingleton(sourceCodeProvider);
63-
}
67+
configureTestServices?.Invoke(services);
6468

65-
configureTestServices?.Invoke(services);
66-
});
69+
var serviceProvider = services.BuildServiceProvider();
6770
var executor = serviceProvider.GetRequiredService<Executor>();
6871
return new Runner(serviceProvider, executor);
6972
}

0 commit comments

Comments
 (0)