2016-05-18 5 views
0

私はこの作業をしていましたが、パッケットに切り替えて、いくつかのバージョンのdllが変更されたと思います。LoggerNameは既に使用されています

しかし、私はまだ私が得るエラーを理解していません。

System.ArgumentException : LoggerName already in use 
     Parameter name: loggerName 

私のコードは、基本的には、まさにそれが

http://www.tomdupont.net/2015/06/capture-xunit-test-output-with-nlog-and.html

public class NLogTests : IDisposable 
{ 
    private readonly ILogger _logger; 

    public NLogTests(ITestOutputHelper outputHelper) 
    { 
     _logger = outputHelper.GetNLogLogger(); 
    } 

    public void Dispose() 
    { 
     _logger.RemoveTestOutputHelper(); 
    } 

    [Fact] 
    public void Hello() 
    { 
     _logger.Trace("World Trace"); 
     _logger.Debug("World Debug"); 
     _logger.Warn("World Warn"); 
     _logger.Error("World Error"); 
    } 
} 

と設定

GetNLogLogger方法は、ロガー名を受け取るオーバーロードがあり
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    throwExceptions="true"> 
    <extensions> 
    <add assembly="xunit.NLog" /> 
    </extensions> 
    <targets async="false"> 
    <target xsi:type="TestOutput" 
     layout="${time}|${level:uppercase=true}|${logger}|${message}" 
     name="Test" /> 
    </targets> 
    <rules> 
    <logger name="*" minlevel="Debug" writeTo="Test" /> 
    </rules> 
</nlog> 

、ここにあるようです増分接尾辞のブール値。これらを使用しても役に立ちません。

私は本当に混乱しています。

スタックトレース:

System.ArgumentException 
LoggerName already in use 
Parameter name: loggerName 
    at Xunit.NLog.Targets.TestOutputTarget.Add(ITestOutputHelper testOutputHelper, String loggerName) 
    at Xunit.NLog.Helpers.TestOutputHelpers.AddTestOutputHelper(ITestOutputHelper testOutputHelper, String loggerName, Boolean addNumericSuffix) 
    at Xunit.NLogTestOutputExtensions.GetNLogLogger(ITestOutputHelper testOutputHelper, String loggerName, Boolean addNumericSuffix) 
    at ProjectRake.BusinessLogic.Spec.TautologiesToVerifyNLogOutput..ctor(ITestOutputHelper outputHelper) in M:\programming\ProjectRake\src\server\ProjectRake.BusinessLogic.Spec\TautologiesToVerifyNLogOutput.cs:line 19 

編集: は2.1.0、同じ問題にすべてのxUnitのものを格下げしています。

+0

あなたはスタックトレースを持っていますか? – Julian

+0

thanks thanks;) –

+0

libary:https://github.com/tdupont750/xunit.NLog – Julian

答えて

0

outputHelper.GetNLogLogger();AddTestOutputHelper("")

を呼び出している私はあなたが一度それを呼び出す場合にのみ動作しますね。

あなたはoutputHelper.GetNLogLogger("myname");使用することができますかoutputHelper.GetNLogLogger(typeof(NLogTests).Name);

+0

私が言ったように、私はこれらの過負荷を試しました。このテストは一度しか実行されていないので、すでに設定されているようには見えません。 –

+0

、または明らかにするには、私は他のすべてのテストバーをコメントアウトしてこの問題を解決できますが、依然としてエラーを受け取ります –

+0

https://github.com/tdupont750/xunit.NLogで問題を投稿することをお勧めします – Julian

関連する問題