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 отлично работает с тестами в пределах одной сборки, поэтому я предлагаю вам перейти на это.

Другие вопросы по тегам