私は、カスタムILoggerProvider
を追加ILoggerFactory
に拡張子を書かれています。 (NLog.Extensions.Loggingと同様に)は私のASP.NETコアプロジェクトで
私はStartup.cs
でこれを追加している:
loggerFactory.AddRabbitLogger(Configuration.GetSection(nameof(WebLoggerOptions)));
ロギングが完璧に働いている、しかし、それはRabbitMQのにメッセージを送信し、それはそれは、接続してチャンネルを開くことを意味します。これらは、私のテスト
(ILoggerProvider
はすでにIDisposable
から継承)私はDispose
内のチャネルとの接続を閉じるように開いたままにすることはできません成功しているが、問題は私のテスト出力は常に別の問題がある
Error while unloading appdomain. (Exception from HRESULT: 0x80131015)
このエラーが表示されていることですテストが完了してから数秒かかるとエラーが表示されるので、新しいテストを開始できません。
私のテストでロガープロバイダの処分をトリガーする方法はありますか?ここで
は私の統合テストのコードです。あなたが見ることができるように、私はTearDown
統合テスト
public abstract class TestBase
{
private TestServer _server;
protected HttpClient TestHttpClient { get; private set; }
[SetUp]
protected void BaseSetup()
{
_server = new TestServer(new WebHostBuilder()
.UseStartup<Startup>());
TestHttpClient = _server.CreateClient();
}
[TearDown]
public void TearDown()
{
TestHttpClient.Dispose();
_server.Dispose();
}
}
public class MyTestClass : TestBase
{
[Test]
public async Task SendTest()
{
requestUrl = "api/ControllerName/Mehthod";
var response = await TestHttpClient.PostAsync(requestUrl, pardotFormCommand, GetMediaTypeFormatter());
response.StatusCode.Should().Be(HttpStatusCode.OK);
}
}
あなたはコードを提供していませんが、私が推測するように、あなたは手作業でLoggerFactoryを手動で破棄することはできませんか? –
組み込みのDIコンテナなどを使用していますか? – Dealdiane
また、ロガークラスのスニペットを投稿してテストできますか? – Dealdiane