我正在使用nunit 2.5.9.10348并尝试在TearDown事件中提取当前测试名称,因此我可以为screengrab文件名指定测试名称,但它始终为null(请参阅附图)。 private _context变量确实有TestName,但这对我没用!
有没有人使用这个新的TestContext功能(从2.5.7开始)取得了成功。
答案 0 :(得分:3)
从屏幕截图中我看到_context有“TestName”和“Properties”键。但TestAdapter为Name查找键“Test.Name”,为Properties查找“Test.Properties”。因此,TestContext初始化有问题(我认为将错误的数据放到了Remoting.Messaging.CallContext上)。
经过一番调查(见评论): NUnit测试应该由NUnit testig环境运行,以便Context可用。
答案 1 :(得分:0)
我有同样的问题。它发生在TearDown方法中我执行的方法,实际上就是要进行拆解
[TearDown]
public void CleanUp()
{
TestContext.CurrentContext.Test.FullName; //!=null
someClassInstance.DoTearDown();
}
class SomeClass
{
public void DoTearDown()
{
TestContext.CurrentContext.Test.FullName; //==null
}
}
我不知道为什么,但似乎是这样。是你的情况吗?
更新:现在我看了截图,所以不是你的情况:)。
答案 2 :(得分:0)
与R#test runner相同的问题。刚刚下载了NUnit源代码,并在TestAdapter中添加了一个变通方法,使其与r#
一起使用 public string Name
{
get
{
return (_context["Test.Name"] ?? _context["TestName"]) as string;
}
}