Я использую VS2010, у меня есть следующий вызов метода:
[Conditional("DEBUG")]
public void VerboseLogging() { }
public void DoSomething() {
VerboseLogging();
Foo();
Bar();
}
Затем у меня есть модульный тест для метода DoSomething
, который проверяет, что он выдает правильное ведение журнала.
[Conditional("DEBUG"), TestMethod()]
public void EnsureVerboseLog() {
DoSomething();
VerifyVerboseLoggingCalled(); // <-- fail in release builds since VerboseLogging() calls get eliminated.
}
Похоже, что MSTest видит только TestMethod
и выполняет его (генерирует неудачный тест), хотя я пометил его Conditional("DEBUG")
и скомпилировал в режиме выпуска.
Итак, есть ли способ исключить определенные тесты в зависимости от константы компиляции, отличной от #if
?