MbUnit - 当使用DependsOn属性时,测试在不同程序集中时测试依赖性不起作用

时间:2011-03-13 17:31:24

标签: mbunit

我对DependsOn属性有这个奇怪的问题。 我在Assembly ASSM_A中定义了测试A,在ASSM_B中定义了测试B(两者都是测试夹具)。 当我在测试A上定义测试B的依赖关系时:

[TestFixture]
[DependOn(ASSM_A_NAMESPACE.A)]
public class B
{
    // my code .....
}

一切都在.NET中运行和编译(VS 2008,MbUnit版本= 3.2.0.0,Gallio版本= 3.2版本601)。

但是当我在Gallio中加载ASSM_A和ASSM_B两个程序集并运行测试B(这取决于测试A)时,我得到以下消息:

[warning] Was unable to resolve a test dependency.

当两个测试都在同一个程序集中时 - 依赖项按预期工作。

可能是什么问题?也许我应该在测试不同的程序集中定义我的自定义依赖属性?如果是这样,有人可以解释如何这样做吗?

非常感谢!

P.S。:编码在C#中完成。

P.S.S。:阅读关于AssemblyDependsOn但不能使用它,因为它是旧的MbUnit 阅读DependsOnAssembly(与AssemblyDependsOn基本相同)但在我正在使用的MbUnit版本中找不到int。

2 个答案:

答案 0 :(得分:0)

简短的回答是,这是行不通的。

不幸的是,由于装配/隔离装配的方式(默认情况下,在一个单独的过程中),要实现你想要的东西是很难的。

更好的错误信息会很好。

答案 1 :(得分:0)

您应该将所有测试放在一个程序集中(并将生产代码放在不同的程序集中)。这使得一切都变得微不足道,包括依赖关系,并从生产代码中排除测试代码。

DependsOn在单个程序集中的测试工作正常,所以我建议你切换到这个。