取消测试(带警告)

时间:2012-06-21 14:46:00

标签: c# visual-studio unit-testing nunit mstest

我的项目有一些单元测试。它们都依赖于一些我无法控制的外部服务。这项服务经常失败(召回Twitter大约2008年)。目前,如果服务已关闭,则测试将失败,并且不会构建持续集成服务器。我很反感。我想忽略依赖于此设置的测试,并打印警告。

[BeforeScenario]

try
{
    connect(server)
}
catch (Exception x)
{
    throw new Exception(String.Format("Failed to connect to server {0}", server), x);
}

我该怎么做?我今天碰巧正在使用SpecFlow,但我也想知道如何从NUnit中做到这一点。

以下是我目前的情况。没关系。测试被忽略,但构建仍然失败。

[BeforeScenario]

try
{
    connect(server)
}
catch (Exception x)
{      
    throw new SpecFlowCancelTests(String.Format("Failed to connect to server {0}", server), x);
}

1 个答案:

答案 0 :(得分:3)

您可以使用Assert.Inconclusive("message")Assert.Ignore()实用程序方法:

  

Assert.Inconclusive方法表明测试不可能   完成了可用的数据。它应该在情况下使用   其他具有不同数据的运行可能会运行完成,其中   成功或失败的结果。

     

Assert.Ignore方法为您提供动态的功能   导致在运行时忽略测试或套件。它可能会被称为   测试,设置或夹具设置方法。我们建议您使用它   仅在个别情况下。提供类别设施以供更多   广泛包含或排除测试,或者您可以选择简单   将在不同场合运行的测试分成不同的组件。

有用的链接:   - What is the Inconclusive Test Condition?