MSTest:测试分组

时间:2019-04-18 10:05:22

标签: c# .net visual-studio mstest

我正在使用MSTest为现有应用程序设置UnitTest Suite。

该应用程序支持两个不同的数据库(SQLServer和MSAccess),因此我们希望每个单元测试都能在两个数据库上运行。

我已经通过以下类构造实现了此功能

namespace SQLServer {
    [TestClass] public class SQLServer : TestCases { }
}
namespace MSAccess {
    [TestClass] public class MSAccess : TestCases { }
}

public abstract partial class TestCases {
    //Tests for Module1
    [TestMethod] public void Module1_Test1() { }

}
public abstract partial class TestCases {
    //Tests for Module2
    [TestMethod] public void Module2_Test1() { }
}

这或多或少地像预期的那样工作,但是当然不是很好,因为所有TestMethod必须在同一个类中。缺点还在于,不同模块的两个TestMethod不能具有相同的名称,从而使方法的名称不必要地长。

但是,我的主要问题是我无法按模块将TestMethod分组。我在Test Explorer中实现的分组是:

UnitTestProject (Project name)
  UnitTestProject.SQLServer (Namespace name)
    SQLServer (Class name)
      Module1_Test1 (Function name)
      Module2_Test1
  UnitTestProject.MSAcccess
    MSAccess
      Module1_Test1
      Module2_Test1

我真正想要的是:

UnitTestProject 
  SQLServer
    Module1
      Module1_Test1
    Module2
      Module2_Test1
  MSAccess
    Module1
      Module1_Test1
    Module2
      Module2_Test1

有没有办法做到这一点?

1 个答案:

答案 0 :(得分:2)

Use the TestCategory attribute,并确保在“测试资源管理器”窗口中按“特征”对您的测试进行分组。