【问题标题】:Displaying the Description attribute of a Unit Test in Visual Studio 2015在 Visual Studio 2015 中显示单元测试的描述属性
【发布时间】:2015-08-28 10:48:36
【问题描述】:

有谁知道如何在 Visual Studio 2015 的测试运行期间显示描述属性?

例如给定这个测试:

        [TestMethod]
        [TestCategory("With Fakes")]
        [Description("Posting a blog entry without the required data should return a BadRequest")]
        public async Task BlogEntryPostTest1()
        {
          ... do test
        }

如何在运行时显示描述?我认为测试资源管理器不会这样做。有没有其他选择?

【问题讨论】:

  • 我同意,因为我的测试目前有很长时间的高度描述性名称,我觉得我现在应该能够使用 description 属性来描述它,然后只需用简单的两个或三个单词名称命名测试使用通常的 UpperCamelCase。
  • 你有想过这个吗?
  • @Yatrix 恐怕不行;抱歉,我无法提供更多帮助。

标签: visual-studio unit-testing visual-studio-2015


【解决方案1】:

don't think 这在 test explorer 中是可能的(至少 2015 年)。我也相信 ReSharpers“单元测试”tool 不支持它。我认为查看单元测试旁边显示的描述标签的唯一方法是使用NUnit

您可以将您的声音添加到提议的更改here。也许在下一个版本的测试资源管理器中,他们会添加它......现在,如果你真的需要查看描述,我会使用 NUnit(plus GUI),如果不是,也许你可以考虑其他一些 design proposals

【讨论】:

    【解决方案2】:

    您可以创建一个使用“System.Reflection”的实用程序方法 通过在运行时获取当前实例的类型,您可以通过在每次测试初始化​​时调用它来确定具有描述属性的方法

    [TestInitialize]
    public void TestInit()
    {
       DisplayDescription(this.GetType());
    }
    

    这里实际发生的是

    1. 获取当前实例的类型并将其传递给 DisplayDescription 方法
    2. 从测试上下文中获取测试名称
    3. 使用 System.Reflection 查明当前实例的测试方法
    4. 获取测试方法的属性
    5. 将属性解析为 DescriptionAttribute 和
    6. 使用 TestContext writeline 显示描述文本

    实用方法...

    public void DisplayDescription(Type methodType)
    {
        string testName = TestContext.TestName;
        MemberInfo method = methodType.GetMethod(testName);
        Attribute attr = method.GetCustomAttribute(typeof(DescriptionAttribute));
        if (attr != null)
        {
            DescriptionAttribute descAttr = (DescriptionAttribute)attr;
            TestContext.WriteLine("Test Description: " + descAttr.Description.ToString());
        }
    }
    

    几个小时以来,我一直在寻找干净的解决方案,很高兴我在网上找到了本教程。我想分享这个聪明的解决方案,所以我把它贴在这里,以防将来有人需要它。

    参考: https://app.pluralsight.com/library/courses/basic-unit-testing-csharp-developers/table-of-contents

    【讨论】:

      猜你喜欢
      • 2017-08-13
      • 2016-05-06
      • 2019-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多