Предыстория: у меня есть куча модульных тестов в .NET
, для запуска которых требуется настроить некоторые данные конфигурации. Первоначально я использовал TestInitialize
и TestCleanup
для установки и удаления данных конфигурации для каждого теста; однако для всего набора тестов достаточно одной настройки, поэтому вместо этого я бы предпочел использовать ClassInitialize
и ClassCleanup
.
Проблема: когда я меняю атрибут с TestInitialize
на ClassInitialize
и запускаю тесты, я получаю следующую ошибку:
MyTestClass.ClassInit имеет неправильную подпись. Метод должен быть помечен как статический.
Каковы причины дизайна этого атрибута, требующего, чтобы его метод был статическим? Все мои методы тестирования являются методами экземпляра, поэтому я бы предположил, что где-то создается по крайней мере один экземпляр моего тестового класса для их запуска. Почему бы этому экземпляру не отвечать за последующую уборку?
Я проверил MSDN, и они не упоминайте явно статическое требование, хотя у них есть хороший пример его использования.
[ClassInitialize]
? это должно быть похоже наpublic static void MethodName(TestContext context)
в VB.NetPublic Shared Sub MethodName(ByVal testContext As TestContext)
- person Damith   schedule 01.10.2013