Возможно ли иметь детерминированный ClassCleanup в модульном тестировании MSTest / VS? - PullRequest
5 голосов
/ 17 ноября 2011

то есть чтобы метод, украшенный атрибутом ClassCleanup, выполнялся один раз сразу после всех тестов в тестовом классе?(например, TestFixtureTearDown в NUnit).Есть какие-нибудь обходные пути?

Альтернатива встраивания этой тяжелой настройки / разрыва в TestInitialize и TestCleanup просто ускорила бы время выполнения теста.

Я сравнивал их за последнюю неделю.(Вот что я нашел NUnit vs MSTest . У меня не так много времени в MSTest, поэтому, если я допустил ошибку, пожалуйста, не стесняйтесь публиковать исправления в качестве комментариев ..)

Насколько мне известно, этот конкретный предмет является демонстрацией.Прочтите первый раздел поста в блоге на случай, если вам понадобится более подробная информация.

Ответы [ 2 ]

1 голос
/ 06 января 2012

ClassInitialize и ClassCleanup вызываются сразу после загрузки вашего класса и непосредственно перед его выгрузкой.

Это правда, но классы выгружаются после завершения всех тестов.

1007 * Е.Г. *

ClassInitialize1
TestInitialize1
TestMethod11
TestCleanup1
TestInitialize1
TestMethod12
TestCleanup1
ClassInitialize2
TestInitialize2
TestMethod21
TestCleanup2
TestInitialize2
TestMethod22
TestCleanup2
TestInitialize2
TestMethod23
TestCleanup2
ClassCleanup1
ClassCleanup2

0 голосов
/ 19 ноября 2011

Согласно MSDN ClassCleanup запускается следующим образом:

Для классов

ClassInitialize и ClassCleanup вызываются сразу после загрузки вашего класса и непосредственно перед вашимкласс выгружен.

Насколько я понимаю, это означает, что когда тесты в классе выполнялись.

...