使用NUnit 2.5.8中的TestContext时出现NullReferenceException错误

5

最近升级到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确定当前测试名称的方法?


你是怎样运行测试的?你是否使用了特定的测试运行器,可能是问题所在? - Chris Missal
它被NUnit GUI运行器和Resharper运行器展示。 - Adam Scott
1个回答

0

这不是你问题的答案,但我在使用TestDriven.NET的可复制部署NUnit测试运行器使用NUnit 2.5.7时遇到了类似的问题,并且因为TestDriven.NET仍在运行2.5.5下的测试(它随附),而不是我的项目引用的NUnit,所以出现了NullReferenceException

问题最终证明是我正在引用NUnit\ NUnit-2.5.7.10213 \ bin \ net-2.0 中找到的nunit.framework.dll,而我需要引用的是在NUnit\ NUnit-2.5.7.10213 \ bin \ net-2.0 \ framework 中找到的那个。为什么会有两份副本我不知道,但指向正确的DLL使所有的区别。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接