如何解决将属性包裹在自定义属性中
使用 Xunit
时,我希望能够放置属性 [UnitTest]
和 [IntegrationTest]
而不是 [Trait("Category","Unit")]
和 [Trait("Category","Integration")]
。
用法如下:
[Fact]
[UnitTest]
public async Task TestGetAreasForCompany()
{
// Test code
}
[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 举报,一经查实,本站将立刻删除。