【问题标题】:Customize Test Name in Xunit2在 Xunit2 中自定义测试名称
【发布时间】:2015-08-10 01:41:55
【问题描述】:

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

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

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

【问题讨论】:

    标签: .net xunit2


    【解决方案1】:

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

    示例: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

    【讨论】:

      【解决方案2】:

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

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

      并如下使用

      [MyFact]
      public void FileSystemProvider_Sync()
      

      【讨论】:

      • 像魅力一样工作,谢谢
      • 谢谢,布拉德的回答也是正确的,但我认为这里的代码非常简单,只需复制和粘贴即可。
      猜你喜欢
      • 2021-06-12
      • 1970-01-01
      • 2013-02-19
      • 1970-01-01
      • 1970-01-01
      • 2014-01-26
      • 1970-01-01
      • 2017-10-27
      • 2020-09-03
      相关资源
      最近更新 更多