[英]How to get FullName as TestName in NUnit
我有一个包含测试方法的抽象测试类。 然后是从这个抽象类派生的一些类。 TestExplorer 识别从抽象类结构派生的类,但 testNames 仅用于抽象类。 我需要向 NUNIT 显示测试方法的 fullName,包括类,而不仅仅是抽象名称。
TestName 模式 {M}{a} 给了我: NUnitTestProject1.Tests.Test1("hello")
全名将是: NUnitTestProject1.NUnitTestProject1.Tests+TestImplement.NUnitTestProject1.Tests.NUnitTestProject1.Tests.Test1("hello")
我缺少“TestImplementation1”类名。 如何告诉 NUnit 将全名显示为 TestName(我需要“Tests+TestImplement1”信息)? 很棒的是像 runsettings 文件这样的全局文件。 测试资源管理器视图。 我尝试了不同的 nunit 模式,还使用<DisplayName>FullNameSep</DisplayName>
。
提前致谢!
简化测试类:
public abstract class Tests
{
public class TestImplement1 : Tests
{
}
public class TestImplement2 : Tests
{
}
[Test]
[TestCase("hello", TestName = "{M}{a}")]
public void Test1(string param1)
{
Assert.Pass();
}
}
好问题!
我认为您尝试的方法不起作用,因为 NUnit VS Adapter 没有使用 NUnit 意义上的“测试名称”。 我对这里的历史不是 100% 确定,但我认为这是因为测试资源管理器的 Visual Studio 端无法处理具有相同名称的测试。
相反,请尝试查看 .runsettings 文件中的DefaultTestNamePattern设置。 文档的此页面上定义了模式的不同选项 - 我希望您想要{C}+{M}{a}
- 可能需要进行一些实验才能使其完全正确。
正如@pwasap4 所指出的那样,这些由 NUnit 创建的作为测试全名的确切格式目前无法通过模式功能访问。 但是,很可能有人添加此功能。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.