Visual Studio .NET - 使用Gallio Integration的MbUnit测试 - 多个断言的问题

时间:2009-08-18 15:14:11

标签: .net unit-testing mbunit gallio

我正在使用gallio将mbunit的测试运行器与visual studio中的mstest测试运行器集成。它运行得很好 - 除非我运行多个断言语句的测试。测试将根据FIRST断言声明通过或失败。我知道很多人都反对多个断言,但在诸如rowtests和组合测试这些接收多行输入的情况下,它们是不可避免的。如果从gallio的icarus gui执行,所有测试都将成功运行。还有其他人遇到/解决了这个问题吗?

编辑:以下是代码示例

(我显然在c#中获得相同的结果)

<Test()> _
<MultipleAsserts()> _
<Row(3, 3)> _
<Row(3, 17)> _
<Row(1, 2)> _
Public Sub MyRowTest(ByVal val1 As Int32, ByVal val2 As Int32)

    Assert.AreEqual(Of Int32)(val1, val2)

End Sub

当通过Visual Studio运行时,测试通过,我得到:

  

MyRowTest(3,3)持续时间:0.016秒,

     

断言:2

1 个答案:

答案 0 :(得分:1)

啊,我明白了。 您的意思是Visual Studio的测试视图仅基于行测试的一行来考虑测试通过或失败。我不认为这与多个断言有任何关系。

这里的问题是Visual Studio的测试模型非常有限,并且不适合某些MbUnit功能。即便如此,Gallio可以做更多工作来提高Visual Studio中数据驱动测试的可用性。

我在这里开了一个问题: http://code.google.com/p/mb-unit/issues/detail?id=509