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