Знает ли TestInitialize имя тест-метода, который будет запущен
От: FrostRus Россия  
Дата: 23.08.12 13:49
Оценка:
Итак, работаем с MS Test Framework, пишем автотесты разного уровня.

Общая логика вызова методов при запуске тестов (юнит, неюнит — не важно) такова (см http://blogs.msdn.com/b/nnaderi/archive/2007/02/17/explaining-execution-order.aspx):

0. стандартный ctor [TestClass]-а
1. static (Testcontext context), помеченный как [ClassInitialize] — вызывается раз до запуска всей пачки тестов в пределах testrun-а
2. [TestInitialize] — вызывается для каждого метода до его запуска
3. [TestMethod] — сам код теста
4. [TestCleanup] — после каждого тест-метода
?. повтор пп. 2-4 для всех методов
n. static [ClassCleanup]

То есть по идее, вызываемый TestInitialize метод мог бы иметь информацию об имени TestMethod-а, ради которого он, собственно, был запущен. Я прав?
Если да — то какие варианты есть это достать?

PS: вопрос больше академический, чем практический — но столкнулся с такой задачей на вполне реальном проекте
mstest
Re: Знает ли TestInitialize имя тест-метода, который будет запущен
От: Lloyd Россия  
Дата: 23.08.12 21:47
Оценка:
Здравствуйте, FrostRus, Вы писали:

FR>То есть по идее, вызываемый TestInitialize метод мог бы иметь информацию об имени TestMethod-а, ради которого он, собственно, был запущен. Я прав?

FR>Если да — то какие варианты есть это достать?

Вынесите такой метод в отдельный TestClass. Или просто определите метод инициализации и из теста дергайте его.
Re[2]: Знает ли TestInitialize имя тест-метода, который будет запущен
От: FrostRus Россия  
Дата: 24.08.12 13:18
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>Вынесите такой метод в отдельный TestClass. Или просто определите метод инициализации и из теста дергайте его.


Спасибо, но вы не совсем поняли, что я имею в виду.
Вопрос не в том, как другим способом можно решить такую задачу (уже давно решил), а в том, как по спецификации CLR это работает. Говорю же — вопрос академический, интересно стало. По здравой логике вроде должен быть способ, но хочется понимать что и как там внутри происходит.
Re[3]: Знает ли TestInitialize имя тест-метода, который будет запущен
От: Lloyd Россия  
Дата: 24.08.12 16:46
Оценка:
Здравствуйте, FrostRus, Вы писали:

L>>Вынесите такой метод в отдельный TestClass. Или просто определите метод инициализации и из теста дергайте его.


FR>Спасибо, но вы не совсем поняли, что я имею в виду.

FR>Вопрос не в том, как другим способом можно решить такую задачу (уже давно решил), а в том, как по спецификации CLR это работает.

CLR тут не причем. Ту информацию, что вы хотите, получить из TestInitialize нельзя, а нельзя — потому что не надо, и более того, потенциально приведет к плохой организации тестов.
Проще надо быть.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.