Assert.Fail不会失败测试?

时间:2010-08-23 12:36:18

标签: c# unit-testing

我正在使用VS 2008进行单元测试。即使我的代码调用

Assert.Fail("some message");

测试过程?

甚至

Assert.IsTrue(false);这也通过了测试。

这怎么可能。我期待测试失败。我想强行失败。

请帮忙!

4 个答案:

答案 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一样)。请告诉我们您正在使用(或不使用?)的测试框架,如果您仍然遇到问题,我们将能够为您提供更多帮助。