我正在使用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() { }
}
这或多或少按预期工作,但当然不是很好,因为所有TestMethod
s必须在同一个类中。它还有一个缺点,即不同模块的两个TestMethod
s不能具有相同的名称,使得方法的名称不必要地长。
然而,我的主要问题是我失去了按模块分组的TestMethod
s。我用它实现的测试资源管理器中的分组是:
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
有没有办法实现这个目标?
Use the TestCategory
attribute并确保您的测试按“测试资源管理器”窗口中的“特征”进行分组。