MSTest: группировка тестов - PullRequest
       35

MSTest: группировка тестов

0 голосов
/ 18 апреля 2019

Я настраиваю 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

Есть ли способ достичь этого?

1 Ответ

2 голосов
/ 18 апреля 2019

Используйте атрибут TestCategory и убедитесь, что ваши тесты сгруппированы по признакам в окне Test Explorer.

...