我确实使用了Test-Explorer,并且对单元测试按“项目、NameSpace、类”进行分组的视图感到很舒服。它在参数化测试中也能很好地工作,我还可以使用TestName来更好地标记/描述。
但是,TestName中的点确实破坏了结构化视图:

我不知道这是Visual Studio还是NUnit的“特性”,但问题是:
有没有可能保留点(可能使用一些转义字符语法)和“项目,NameSpace,类”分组?
[TestFixture]
public class ClassToTest_Fixture
{
[TestCase("no dots data input", TestName = nameof(string.Replace) + " no") ]
[TestCase("no dots data input", TestName = nameof(string.Replace) + " dots")]
[TestCase("no dots data input", TestName = nameof(string.Replace) + " data input")]
[TestCase("dots data input :( ", TestName = nameof(string.Replace) + " dots.data input")]
[TestCase("dots data input :( ", TestName = nameof(string.Replace) + " dots.data.input")]
public void TestMethod(object someData)
{
}
}发布于 2021-11-08 17:42:03
我很抱歉地说,这将是一个答案,它只告诉你为什么会发生坏事。:-)
简单的解决方案:不要设置带有圆点的测试名称!
Visual Studio使用NUnit 3测试适配器提供的信息完全负责显示的外观。该信息基本上是方法的全名和测试用例本身的显示名称。将TestName属性与特性一起使用时,只会更改该显示名称,而不会更改其他名称。
更重要的是,NUnit适配器不知道您要求Visual Studio使用什么分组。因此,它不能通过提供修改后的测试名称来对此作出反应。当然,这正是人们希望在主机和扩展之间进行功能隔离和分离的正常类型。
显然,Visual Studio测试资源管理器正在以某种方式解释测试名称中的点。这可能是一个bug (我想,无论如何),你可以要求他们修复它。在短期内,我会停止使用圆点。:-)
https://stackoverflow.com/questions/69883266
复制相似问题