Я боролся с этим, надеюсь, это поможет кому-то еще.
Создавая модульные тесты с помощью MsTest, я обнаружил, что повторяю один и тот же код в каждом тесте, и нашел пару удобных атрибутов (TestInitialize
, TestCleanup
, ClassInitialize
и ClassCleanup
).
Предположительно, когда вы помечаете метод одним из этих атрибутов, он должен выполняться автоматически (до каждого теста, после каждого теста, до всех тестов и после всех тестов соответственно). К сожалению, этого не произошло, и мои тесты провалились. При прямом вызове этих методов из классов, отмеченных атрибутом TestMethod
, тесты прошли успешно. Было очевидно, что они действовали не сами по себе.
Вот пример кода, который я использовал:
[TestInitialize()]
private void Setup()
{
_factory = new Factory();
_factory.Start();
}
Так почему же это не выполняется?