C# 在编译时向所有类添加属性装饰器

C# 在编译时向所有类添加属性装饰器,c#,.net,attributes,decorator,C#,.net,Attributes,Decorator,在我的解决方案中,我为每个级别的测试都有一个单独的项目。i、 e.一个用于单元测试,一个用于集成测试,一个用于验收测试。 我希望能够按TestCategory进行筛选,但我不希望被迫在每个TestClass上添加和维护TestCategory标记。 我想知道是否有一种方法可以在编译时添加类装饰器,并根据项目添加适当的类别。如果您想按项目进行筛选,您不能要求您的测试工具只在给定程序集中执行测试吗?不,除非使用Postsharp之类的工具,否则在编译过程中无法自动将属性应用于项目中的类型或成员。简单

在我的解决方案中,我为每个级别的测试都有一个单独的项目。i、 e.一个用于单元测试,一个用于集成测试,一个用于验收测试。 我希望能够按TestCategory进行筛选,但我不希望被迫在每个TestClass上添加和维护TestCategory标记。
我想知道是否有一种方法可以在编译时添加类装饰器,并根据项目添加适当的类别。

如果您想按项目进行筛选,您不能要求您的测试工具只在给定程序集中执行测试吗?不,除非使用Postsharp之类的工具,否则在编译过程中无法自动将属性应用于项目中的类型或成员。简单的回答是,我无法利用测试执行工具的名称筛选。再长一点的答案是。。测试在生成定义中运行,该定义对于不同的项目(产品)是通用的,这些项目(产品)的名称可能相同,也可能不相同。然后,您将返回到将属性应用于所有涉及的类型/成员。我没有见过任何这样的测试工具可以在程序集本身上查找这些属性,通常我见过名称/命名空间/程序集名称筛选,或者属性筛选。也许我没有解释我自己。我需要向每个程序集中的每个TestClass添加属性。我理解这一点。你需要一个像PostSharp这样的工具来自动完成这项工作,.NET或C#没有任何方法来满足你的要求。但请注意,这是一个X/Y问题。该属性为Y,即X的解决方案,能够正确过滤测试。因此,如果有一种不同的过滤方法可以解决您的X问题,那么您一定要研究一下。如果您想按项目进行过滤,您不能要求您的测试工具只在给定程序集中执行测试吗?不,除非使用Postsharp之类的工具,否则在编译过程中无法自动将属性应用于项目中的类型或成员。简单的回答是,我无法利用测试执行工具的名称筛选。再长一点的答案是。。测试在生成定义中运行,该定义对于不同的项目(产品)是通用的,这些项目(产品)的名称可能相同,也可能不相同。然后,您将返回到将属性应用于所有涉及的类型/成员。我没有见过任何这样的测试工具可以在程序集本身上查找这些属性,通常我见过名称/命名空间/程序集名称筛选,或者属性筛选。也许我没有解释我自己。我需要向每个程序集中的每个TestClass添加属性。我理解这一点。你需要一个像PostSharp这样的工具来自动完成这项工作,.NET或C#没有任何方法来满足你的要求。但请注意,这是一个X/Y问题。该属性为Y,即X的解决方案,能够正确过滤测试。所以,如果有一种不同的过滤方法可以解决你的X问题,你一定要研究一下。