C# 鼹鼠重定向不工作

C# 鼹鼠重定向不工作,c#,unit-testing,moles,C#,Unit Testing,Moles,我在单元测试中使用Moles将调用重定向到一个日志应用程序块(EntLib的包装版本),它适用于某些方法,但不适用于所有方法 这是test init方法,在该方法中,代理将获得设置 [TestInitialize()] public void TestInit() { Common.Logging.Moles.MExceptionEvent.LogExceptionStringStringStringString = delegate(Exception ex,

我在单元测试中使用Moles将调用重定向到一个日志应用程序块(EntLib的包装版本),它适用于某些方法,但不适用于所有方法

这是test init方法,在该方法中,代理将获得设置

   [TestInitialize()]
    public void TestInit()
    {

    Common.Logging.Moles.MExceptionEvent.LogExceptionStringStringStringString = delegate(Exception ex, string a, string b, string c, string d)
    {
        Debug.WriteLine(String.Format("Exception occurred in test context '{0}' : {1} ", TestContext.TestName, ex.ToString()));
    };

    Common.Logging.Moles.MCriticalEvent.LogStringStringTraceEventTypeStringString = delegate(string a, string b, TraceEventType tet, string c, string d)
    {
        Debug.WriteLine(String.Format("Critical Event occurred in test context '{0}' : {1} ", TestContext.TestName, a));
    };

    Common.Logging.Moles.MDebugEvent.LogStringStringTraceEventTypeStringString = delegate(string a, string b, TraceEventType tet, string c, string d)
    {
       Debug.WriteLine(String.Format("Debug Event occurred in test context '{0}' : {1} ", TestContext.TestName, a));
    };

}
这是从对象资源管理器重定向的方法签名

Public Shared Sub Log(exc As System.Exception, Optional sessionId As String = "", Optional msg As String = "", Optional encoreNamespace As String = "", Optional methodName As String = "")
     Member of Common.Logging.ExceptionEvent

Public Shared Sub Log(msg As String, Optional sessionId As String = "", Optional severity As System.Diagnostics.TraceEventType = Information, Optional encoreNamespace As String = "", Optional methodName As String = "")
     Member of Common.Logging.CriticalEvent

Public Shared Sub Log(msg As String, Optional sessionId As String = "", Optional severity As System.Diagnostics.TraceEventType = Information, Optional encoreNamespace As String = "", Optional methodName As String = "")
     Member of Common.Logging.DebugEvent
ExceptionEvent和CriticalEvent能够正确地记录到重定向的输出位置,但DebugEvent不能。DebugEvent调用引发配置异常,因为它试图从配置文件加载日志配置


是否有一些简单的东西我遗漏了,或者这项工作应该像我写的那样进行?

结果证明,这不是上述代码的直接问题

我有一个调用日志调用的[ClassInitialize],它总是在[TestInitialize]之前触发

将[TestInitialize]的内容移动到[ClassInitialize]的开头,修复了该问题