在Xunit2中自定义测试名称

时间:2015-05-27 19:28:51

标签: .net xunit2

当我今天使用xUnit v2运行我的测试时,我通常使用命名约定,如:

[Fact(DisplayName= "Method Will Do Something")] public void Method_Will_Do_Something() { }

我可以插入什么扩展点,以便根据我的测试方法的命名约定设置我的测试显示名称?

2 个答案:

答案 0 :(得分:6)

最简单的方法:自定义事实属性,发现者和测试用例。

示例:https://github.com/xunit/samples.xunit/tree/master/RetryFactExample

对于自定义测试用例,派生自XunitTestCase并覆盖Initialize()方法。致电base.Initialize()后,请相应地设置DisplayName属性。

您可以在此处查看XunitTestCase的默认行为:https://github.com/xunit/xunit/blob/master/src/xunit.execution/Sdk/Frameworks/XunitTestCase.cs

答案 1 :(得分:3)

为您的事实创建自定义类

public sealed class MyFactAttribute : FactAttribute
{
    public MyFactAttribute([CallerMemberName] string memberName = null)
    {
        DisplayName = memberName;
    }
}

使用如下

[MyFact]
public void FileSystemProvider_Sync()