我希望基于 NUnit
框架的单元测试在 Visual Studio 测试资源管理器中命名为更易于阅读。
例如,与其使用 Test_Case_1
或 TestCase1
,不如使用 Test Case #1, Category: First, Category: Second
(也通过从 [Category]
属性中赋值),方法名称中不允许有空格和字符。
我知道它在 xUnit
中是开箱即用的,但我不能涉及它,因为我正在使用我无法使用 xUnit< 实现的自定义
框架。
是否可以用 NUnit
重写单元测试显示名称?到目前为止,我可以看到,TestDetail
的 FullName
字段具有私有(private) setter 。
NUnit
测试是否有任何其他方式或方法更改显示名称?
最佳答案
如果您使用参数化测试,则支持此功能,您可以在添加 TestCase
属性时指定 TestName
。
如果您没有使用 TestCase ,那么您可以将其用作不太理想的解决方法来实现您想要做的事情。所以你会像这样声明你的测试:
[TestCase(null,TestName="Test Case #1, Category: First, Category: Second")]
public void TestCase(object ignored)
这并不理想,因为它不是程序化的,因此您必须手动键入测试名称,而不是从测试方法的属性中生成它。您还必须向该方法传递一个参数,这就是 ignored
和 null
的意义所在。当然,您可以开始使用参数化测试,在这种情况下,您会将实际值传递给测试。
[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/