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