MSTest:测试分组

问题描述 投票:-1回答:1

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

该应用程序支持两个不同的数据库(SQL Server和MS Access),我们是否希望每个单元测试都针对这两个数据库运行。

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

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() { }
}

这或多或少按预期工作,但当然不是很好,因为所有TestMethods必须在同一个类中。它还有一个缺点,即不同模块的两个TestMethods不能具有相同的名称,使得方法的名称不必要地长。

然而,我的主要问题是我失去了按模块分组的TestMethods。我用它实现的测试资源管理器中的分组是:

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

有没有办法实现这个目标?

c# .net visual-studio mstest
1个回答
2
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.