Я настраиваю UnitTest Suite, используя MSTest для существующего приложения.
Приложение поддерживает две разные базы данных (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
s по модулю. Группировка в 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
Есть ли способ достичь этого?