7

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

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

我可以插入哪些可扩展点以允许我根据测试方法的命名约定设置测试显示名称?

4

2 回答 2

7

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

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

对于您的自定义测试用例,派生XunitTestCase并覆盖该Initialize()方法。调用后base.Initialize(),适当设置DisplayName属性。

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

于 2015-06-09T20:45:52.000 回答
3

为您的事实创建一个自定义类

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

并使用如下

[MyFact]
public void FileSystemProvider_Sync()
于 2017-07-13T15:56:41.680 回答