微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将属性包裹在自定义属性中

如何解决将属性包裹在自定义属性中

使用 Xunit 时,我希望能够放置属性 [UnitTest][IntegrationTest] 而不是 [Trait("Category","Unit")][Trait("Category","Integration")]

用法如下:

[Fact]
[UnitTest]
public async Task TestGetAreasForCompany()
{
  // Test code
}

我创建了 2 个自定义属性,但不知道如何使用它们。

[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method,AllowMultiple = true)]
[Trait("Category","Integration")]
public class IntegrationTestAttribute : Attribute
{
    public IntegrationTestAttribute()
    {
    }
}

以上不起作用。特征未被拾取。

Xunits 实现如下:

using System;
using Xunit.Sdk;

namespace Xunit
{
    /// <summary>
    /// Attribute used to decorate a test method with arbitrary name/value pairs ("traits").
    /// </summary>
    [Traitdiscoverer("Xunit.Sdk.Traitdiscoverer","xunit.core")]
    [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method,AllowMultiple = true)]
    public sealed class TraitAttribute : Attribute,ITraitAttribute
    {
        /// <summary>
        /// Creates a new instance of the <see cref="T:Xunit.TraitAttribute" /> class.
        /// </summary>
        /// <param name="name">The trait name</param>
        /// <param name="value">The trait value</param> 
        public TraitAttribute(string name,string value)
        {
        }
    }
}

解决方法

我确实使用 this article 解决了这个问题,因为 Xunit 提供了一种创建您自己的类别属性的方法。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。