我正在使用VS 2008进行单元测试。即使我的代码调用
Assert.Fail("some message");
测试过程?
甚至
Assert.IsTrue(false);
这也通过了测试。
这怎么可能。我期待测试失败。我想强行失败。
请帮忙!
答案 0 :(得分:5)
可能您正在测试代码中的某处捕获异常。 Assert类使用异常来使测试失败,因此如果您正在捕获它,则测试通过。
请粘贴代码以获得更准确的答案。
答案 1 :(得分:0)
您使用.NET内置的Assert类吗?如果是这样,我怀疑TRACE
未定义。
答案 2 :(得分:0)
有时候,当我点击“运行测试”时,我看到测试引擎在Release配置中构建,然后继续针对较旧的Debug配置构建运行测试。我会称这是VS2008测试引擎中的一个错误。无论如何,请尝试清理Debug AND Release文件夹并再次运行它。
答案 3 :(得分:0)
我不能确定你不知道你正在做什么,但听起来你希望.NET类像NUnit类一样工作 - 不能确定 - 但如果你是,那永远不会奏效。
.NET类仅在定义Trace时有效(查看Project Properties,单击Build选项卡,然后单击“Define TRACE constant”)。 - 但是对于单元测试,这没有用 - 这些类不会抛出异常或以其他方式使单元测试失败......它们会为订阅“稍后调试”的咒语弹出消息框。
如果你想让Assert.Fail失败一个单元测试你需要一个单元测试框架,它提供了一个这样做的类(再次,就像NUnit一样)。请告诉我们您正在使用(或不使用?)的测试框架,如果您仍然遇到问题,我们将能够为您提供更多帮助。