You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NUnit 2.6.3中SetUp获取测试名称返回AdhocTestMethod的问题

解决NUnit 2.6.3中SetUp方法获取测试名称显示"AdhocTestMethod"的问题

我之前也碰到过NUnit 2.6.3这个版本的这个坑——在SetUp里直接拿TestContext.CurrentContext.Test.Name,结果拿到的总是那个莫名其妙的"AdhocTestMethod",根本不是实际的测试方法名。给你两个可行的解决办法:

方法一:从测试属性中提取真实名称

在NUnit 2.6.3里,测试的真实名称其实已经存在于测试上下文的属性集合里了,你只需要换个方式获取:

[SetUp]
public void SetUpFunc()
{
    var actualTestName = TestContext.CurrentContext.Test.Properties["_TEST_NAME"].ToString();
    // 这里actualTestName就会是"TestName123"了
}

方法二:升级到NUnit 3.x(如果项目允许的话)

如果你的项目可以升级测试框架版本,那直接升到NUnit 3.x就一劳永逸了。NUnit 3彻底重构了测试上下文的初始化逻辑,SetUp方法执行时上下文已经完全绑定了具体测试方法,你原来写的代码就能正常拿到正确的测试名称:

[SetUp]
public void SetUpFunc()
{
    var asd = TestContext.CurrentContext.Test.Name; // 这里会正确返回"TestName123"
}

为啥会出现这个奇怪的名称?

简单说,这是NUnit 2.6.3的执行顺序问题——SetUp执行的时候,测试实例还没完全和具体的测试方法绑定,此时TestContext.CurrentContext.Test指向的是一个临时的占位对象,它的默认名称就是"AdhocTestMethod"。而真实的测试名称是在SetUp之后、测试方法执行之前才被注入到上下文的属性里,所以得通过Properties["_TEST_NAME"]去取。

内容的提问来源于stack exchange,提问作者user636312

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:35:21