最近升级到NUnit 2.5.8以便使用新的TestContext功能。这样我们就可以确定当前的测试名称以便检索属性:
private T GetAttribute<T>() where T : class
{
return Attribute.GetCustomAttribute(GetType().GetMethod(TestContext.CurrentContext.Test.Name), typeof(T)) as T;
}
但是,我们在访问属性TestContext.CurrentContext.Test.Name时看到NullReferenceExceptions,因为似乎没有正确注册NUnit CallContext。
是否有其他人遇到此问题,或者是否可以建议另一种从SetUp确定当前测试名称的方法?
答案 0 :(得分:0)
这不是你问题的答案,但是在使用TestDriven.NET's xcopy-deployable NUnit Test Runner使用NUnit 2.5.7并点击NullReferenceException
时遇到了类似的问题,因为TestDriven.NET仍在运行2.5.5(它附带)下的测试,而不是我的项目引用的NUnit。
当我需要引用nunit.framework.dll
中找到的NUnit\NUnit-2.5.7.10213\bin\net-2.0
时,问题结果是我引用了NUnit\NUnit-2.5.7.10213\bin\net-2.0\framework
中的{{1}}。为什么有两个副本我不知道,但指向正确的DLL会产生重大影响。