c# - 更改 NUnit 测试的名称

标签 c# .net unit-testing nunit

我希望基于 NUnit 框架的单元测试在 Visual Studio 测试资源管理器中命名为更易于阅读。

例如,与其使用 Test_Case_1TestCase1,不如使用 Test Case #1, Category: First, Category: Second (也通过从 [Category] 属性中赋值),方法名称中不允许有空格和字符。

我知道它在 xUnit 中是开箱即用的,但我不能涉及它,因为我正在使用我无法使用 xUnit< 实现的自定义 框架。

是否可以用 NUnit 重写单元测试显示名称?到目前为止,我可以看到,TestDetailFullName 字段具有私有(private) setter 。

NUnit 测试是否有任何其他方式或方法更改显示名称?

最佳答案

如果您使用参数化测试,则支持此功能,您可以在添加 TestCase 属性时指定 TestName

如果您没有使用 TestCase ,那么您可以将其用作不太理想的解决方法来实现您想要做的事情。所以你会像这样声明你的测试:

[TestCase(null,TestName="Test Case #1, Category: First, Category: Second")]
public void TestCase(object ignored)

这并不理想,因为它不是程序化的,因此您必须手动键入测试名称,而不是从测试方法的属性中生成它。您还必须向该方法传递一个参数,这就是 ignorednull 的意义所在。当然,您可以开始使用参数化测试,在这种情况下,您会将实际值传递给测试。

[TestCase(5,TestName="Test Case #1, Category: First, Category: Second")]
public void TestCase(int someInput) {
    Assert.AreEqual(5, someInput);
}

关于c# - 更改 NUnit 测试的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30799691/

相关文章:

c# - 在选项卡之间切换时,如何将焦点恢复到之前聚焦的 TabPage 控制

c# - 如何在 Asp.Net MVC 2 中通过 JQuery 调用重载的 C# 函数

c# - C#中的数据分区

Python:模拟日期时间问题

python-3.x - 如何在棉花糖模式中添加多个验证参数

c# - 当所有设置均为最大值时,已超出传入邮件的最大邮件大小配额 (65536)

c# - 使用双 Foreach 循环输出数据时结果相同

c# - 将 Dictionary<string, class> 转换为 IDictionary<string, interface>

c# - 实例化并转换扩展通用抽象类的类

java - 如何使用 Mockito 测试 DAO 方法?