C# 有没有一种方法可以将[TestMethod]应用于所有使用类的方法

C# 有没有一种方法可以将[TestMethod]应用于所有使用类的方法,c#,mstest,C#,Mstest,我不得不在类中每个方法的顶部键入[TestMethod],这让我非常恼火。目前我的项目中有600多个测试。有没有一种方法可以像PostSharp或fody那样通过和IL weaver添加此属性?或者我可以添加一个类属性来执行相同的操作吗 干杯我想到的唯一想法是使用属性[ClassInitialize]编写自己的方法,该属性将在测试执行之前运行。方法实现:使用反射遍历特定类中的所有方法,并在运行时添加属性。您的问题没有现成的解决方案。您可以使用find and replace,并将public v

我不得不在类中每个方法的顶部键入[TestMethod],这让我非常恼火。目前我的项目中有600多个测试。有没有一种方法可以像PostSharp或fody那样通过和IL weaver添加此属性?或者我可以添加一个类属性来执行相同的操作吗


干杯

我想到的唯一想法是使用属性[ClassInitialize]编写自己的方法,该属性将在测试执行之前运行。方法实现:使用反射遍历特定类中的所有方法,并在运行时添加属性。您的问题没有现成的解决方案。

您可以使用find and replace,并将public void替换为[TestMethod]public void:)

您编写了600个方法,每个方法都不止一行,在头部多放一行有什么问题吗?:)TestMethod属性允许您将支持方法与测试混合使用。它还为您提供了忽略套件中特定测试的方法。我不知道你为什么要这么做……我强烈建议你也使用
[TestCategory]
。它可以多次应用于方法,并允许您为测试设置类别。特别有用,因此您可以在TestManager中集中精力,只运行影响功能的测试。在这种情况下,您无论如何都需要对它们进行修饰,这样您就可以同时执行
TestMethod
。系统im编写是一个纯TDD/BDD驱动的系统。随着系统的发展,我还有几百个测试要编写。使用良好的编码实践,我的所有支持方法都存储在其他地方,并在需要时注入。大多数方法只有一两行,但该属性增加了不必要的复杂性。[TestCategory]是另一项毫无意义的MS发明,它没有任何好处-如果您正确地构造代码,就不需要类别。只有当你创造了巨大的神类时才需要它们,这真的很糟糕practice@Justdeserves那根本不是真的。您可以将
TestCategory
与CI解决方案结合使用,以确保在CI期间排除某些测试。例如,如果有一些测试执行繁重的数据处理,并且运行时间有点太长,那么这将非常有用。您可以使用测试类别将CI构建缩减为绝对关键的测试,然后使用夜间/计划的构建运行所有测试,包括长时间运行的测试。虽然这是一个很好的建议,但它不会达到我当前方法所需的效果。