如何使用MSTest / CCNet警告外部影响的测试失败

时间:2011-10-19 21:48:22

标签: web-services mstest

我们的在线服务部分与第三方网络服务集成。因此,我们在Visual Studio 2010中使用MSTest进行了大量单元测试,以确保与第三方的交易产生预期的响应。我们运行CCNet进行连续构建,并且它正在做着持续集成的意义。在许多场合,它发现上游层中的签入更改了我们服务端的数据并破坏了集成。

不幸的是,第三方的集成测试主机不可靠,因为它可以在没有警告的情况下停机维护。因此,由于这些单元测试因连接问题而失败,因此每天有几次构建将被破坏。这非常令人分心,除了将此标记为可接受的结果路径外,我们无能为力。我们的很多测试结果如下:

var client = new ThirdPartyClient(TestConfig);
var Result = client.DoSomethingOverThere(ourDataToSend);
Assert.IsFalse(Result == BadResult)
Assert.IsTrue((Result == Success) || (Result == Timeout))

我真的想知道两个可能的结果中的哪一个导致测试通过。 (实际上我希望有一种方法可以使用Assert.Inconclusive而不计算它是一个破碎的版本)但是有没有人有任何关于如何处理这种情况的建议?

1 个答案:

答案 0 :(得分:0)

此帖子Inconclusive Tests in TFS Build Should Not Break the Build解释了可能适用于您的情况的解决方法。我同意当你的另一方遇到问题时将不确定状态设置为测试是处理这个问题的一种实用方法。