Skip to content

Commit d037c75

Browse files
committed
Reduce logging from tests during cibuild
1 parent 2a57fe1 commit d037c75

File tree

5 files changed

+39
-13
lines changed

5 files changed

+39
-13
lines changed

test/MultiDbContextTests/ResourceTests.cs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,16 @@
33
using FluentAssertions;
44
using JsonApiDotNetCore.Configuration;
55
using JsonApiDotNetCore.Serialization.Objects;
6-
using Microsoft.AspNetCore.Mvc.Testing;
76
using Microsoft.Extensions.DependencyInjection;
87
using MultiDbContextExample.Models;
98
using TestBuildingBlocks;
109
using Xunit;
1110

1211
namespace MultiDbContextTests;
1312

14-
public sealed class ResourceTests : IntegrationTest, IClassFixture<WebApplicationFactory<ResourceA>>
13+
public sealed class ResourceTests : IntegrationTest, IClassFixture<NoLoggingWebApplicationFactory<ResourceA>>
1514
{
16-
private readonly WebApplicationFactory<ResourceA> _factory;
15+
private readonly NoLoggingWebApplicationFactory<ResourceA> _factory;
1716

1817
protected override JsonSerializerOptions SerializerOptions
1918
{
@@ -24,7 +23,7 @@ protected override JsonSerializerOptions SerializerOptions
2423
}
2524
}
2625

27-
public ResourceTests(WebApplicationFactory<ResourceA> factory)
26+
public ResourceTests(NoLoggingWebApplicationFactory<ResourceA> factory)
2827
{
2928
_factory = factory;
3029
}

test/NoEntityFrameworkTests/PersonTests.cs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,16 @@
33
using FluentAssertions;
44
using JsonApiDotNetCore.Configuration;
55
using JsonApiDotNetCore.Serialization.Objects;
6-
using Microsoft.AspNetCore.Mvc.Testing;
76
using Microsoft.Extensions.DependencyInjection;
87
using NoEntityFrameworkExample.Models;
98
using TestBuildingBlocks;
109
using Xunit;
1110

1211
namespace NoEntityFrameworkTests;
1312

14-
public sealed class PersonTests : IntegrationTest, IClassFixture<WebApplicationFactory<Person>>
13+
public sealed class PersonTests : IntegrationTest, IClassFixture<NoLoggingWebApplicationFactory<Person>>
1514
{
16-
private readonly WebApplicationFactory<Person> _factory;
15+
private readonly NoLoggingWebApplicationFactory<Person> _factory;
1716

1817
protected override JsonSerializerOptions SerializerOptions
1918
{
@@ -24,7 +23,7 @@ protected override JsonSerializerOptions SerializerOptions
2423
}
2524
}
2625

27-
public PersonTests(WebApplicationFactory<Person> factory)
26+
public PersonTests(NoLoggingWebApplicationFactory<Person> factory)
2827
{
2928
_factory = factory;
3029
}

test/NoEntityFrameworkTests/TodoItemTests.cs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,16 @@
33
using FluentAssertions;
44
using JsonApiDotNetCore.Configuration;
55
using JsonApiDotNetCore.Serialization.Objects;
6-
using Microsoft.AspNetCore.Mvc.Testing;
76
using Microsoft.Extensions.DependencyInjection;
87
using NoEntityFrameworkExample.Models;
98
using TestBuildingBlocks;
109
using Xunit;
1110

1211
namespace NoEntityFrameworkTests;
1312

14-
public sealed class TodoItemTests : IntegrationTest, IClassFixture<WebApplicationFactory<TodoItem>>
13+
public sealed class TodoItemTests : IntegrationTest, IClassFixture<NoLoggingWebApplicationFactory<TodoItem>>
1514
{
16-
private readonly WebApplicationFactory<TodoItem> _factory;
15+
private readonly NoLoggingWebApplicationFactory<TodoItem> _factory;
1716

1817
protected override JsonSerializerOptions SerializerOptions
1918
{
@@ -24,7 +23,7 @@ protected override JsonSerializerOptions SerializerOptions
2423
}
2524
}
2625

27-
public TodoItemTests(WebApplicationFactory<TodoItem> factory)
26+
public TodoItemTests(NoLoggingWebApplicationFactory<TodoItem> factory)
2827
{
2928
_factory = factory;
3029
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
using System.Diagnostics;
2+
using JetBrains.Annotations;
3+
using Microsoft.AspNetCore.Hosting;
4+
using Microsoft.AspNetCore.Mvc.Testing;
5+
using Microsoft.Extensions.Logging;
6+
7+
namespace TestBuildingBlocks;
8+
9+
[UsedImplicitly(ImplicitUseKindFlags.InstantiatedNoFixedConstructorSignature)]
10+
public sealed class NoLoggingWebApplicationFactory<TEntryPoint> : WebApplicationFactory<TEntryPoint>
11+
where TEntryPoint : class
12+
{
13+
protected override void ConfigureWebHost(IWebHostBuilder builder)
14+
{
15+
DisableLogging(builder);
16+
}
17+
18+
[Conditional("RELEASE")]
19+
private static void DisableLogging(IWebHostBuilder builder)
20+
{
21+
// Disable logging to keep the output from C/I build clean. Errors are expected to occur while testing failure handling.
22+
builder.ConfigureLogging(loggingBuilder => loggingBuilder.ClearProviders());
23+
}
24+
}

test/TestBuildingBlocks/appsettings.json

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,14 @@
22
"Logging": {
33
"LogLevel": {
44
"Default": "Warning",
5+
// Disable logging to keep the output from C/I build clean. Errors are expected to occur while testing failure handling.
6+
"Microsoft.AspNetCore.Hosting.Diagnostics": "None",
57
"Microsoft.Hosting.Lifetime": "Warning",
68
"Microsoft.EntityFrameworkCore": "Warning",
7-
"JsonApiDotNetCore": "Warning"
9+
"Microsoft.EntityFrameworkCore.Model.Validation": "Critical",
10+
"Microsoft.EntityFrameworkCore.Update": "Critical",
11+
"Microsoft.EntityFrameworkCore.Database.Command": "Critical",
12+
"JsonApiDotNetCore": "Critical"
813
}
914
}
1015
}

0 commit comments

Comments
 (0)