MbUnit - тестовая зависимость, когда тесты находятся в разных сборках, не работает при использовании атрибута DependsOn
У меня странная проблема с атрибутом DependsOn. У меня есть тест A, определенный в сборке ASSM_A, и тест B, определенный в ASSM_B (оба являются тестовыми приборами). Когда я определяю зависимость теста B от теста A:
[TestFixture]
[DependOn(ASSM_A_NAMESPACE.A)]
public class B
{
// my code .....
}
все работает и компилируется в.NET (VS 2008, версия MbUnit = 3.2.0.0, версия Gallio = 3.2 build 601).
Но когда я загружаю обе сборки ASSM_A и ASSM_B в Gallio и запускаю тест B (который зависит от теста A), я получаю следующее сообщение:
[warning] Was unable to resolve a test dependency.
Когда оба теста находятся в одной сборке - зависимость работает, как и положено.
В чем может быть проблема? Может быть, я должен определить свой собственный атрибут зависимости в случае, если тесты находятся в разных сборках? Если так, может кто-нибудь объяснить, как это сделать?
Большое спасибо!
PS: кодирование выполняется на C#.
PSS: прочитайте о AssemblyDependsOn, но не можете использовать его, поскольку он является старым MbUnit. Прочитайте о DependsOnAssembly (который в основном такой же, как AssemblyDependsOn), но не смог найти int в версии MbUnit, которую я использую.
2 ответа
Короткий ответ: это не сработает.
К сожалению, из-за способа загрузки / изоляции сборок (по умолчанию, в отдельном процессе) было бы довольно сложно добиться того, что вы ищете.
Лучшее сообщение об ошибке было бы хорошо.
Вы действительно должны иметь все свои тесты в одной сборке (и ваш производственный код в другой сборке). Это делает все тривиальным, включая зависимости и исключая тестовый код из производственного кода.
DependsOn отлично работает с тестами в пределах одной сборки, поэтому я предлагаю вам перейти на это.