【发布时间】:2016-12-14 14:11:41
【问题描述】:
我是单元测试实践的新手,我遇到的问题在下面的代码中,TestEnums 方法似乎在第一次 Assert 失败时停止/中断迭代,我的意思是,它只显示一个失败的错误测试资源管理器中的消息。
我想修改此代码以显示所有在 Test Explorer 中失败的断言,即每个未通过 EnumHasRepeatedValues 方法的断言的测试 Enum .
Imports Microsoft.VisualStudio.TestTools.UnitTesting
Imports System.Reflection
<TestClass()>
Public Class Application
<TestMethod()>
Public Sub TestEnums()
Dim ass As Assembly = Assembly.Load("Elektro.Application")
Dim types As IEnumerable(Of Type) =
From t As Type In ass.GetTypes() Where t.IsEnum
For Each t As Type In types
EnumHasRepeatedValues(t)
Next
End Sub
Public Sub EnumHasRepeatedValues(ByVal t As Type)
Assert.AreEqual([Enum].GetValues(t).Length,
[Enum].GetNames(t).Length,
String.Format("Enum {0}.{1} has defined repeated values.",
t.Namespace, t.Name))
End Sub
End Class
【问题讨论】:
-
你读过this关于使用数据源的内容吗?
-
@Pro Grammer 感谢您的评论,但是,我不确定这种解决方案是否可以帮助我实现这一目标,是否有必要像 MSDN 示例中那样生成数据库?
-
据我所知,您可以将CSV, XML or a local data source 嵌入到您的测试库中。它不必是一个完整的数据库。我还找到了this,这可能会更有帮助
-
考虑使用NUnit。它有test summary 甚至html reports 的工具。即使这不是您正在寻找的 100%,它也比 MSUnit 更加强大和灵活。
-
@Alex B 谢谢,但它是一个新建项目,嗯...少于那个,它是一个免费的开源项目,单元测试应该可供最终用户编译,无需强迫他们安装 Nunit、NCrunch、JustMock 或其他任何第三方解决方案。如果只是为了我,那么我可能会安装比 Microsoft 提供的更灵活的东西。
标签: .net vb.net unit-testing assert