如何强制单元测试的状态为“测试未运行”? (MS测试)

时间:2015-08-21 15:55:37

标签: c# rest unit-testing mstest

我有一些单元测试正在测试第三方REST API的代理(仅限GET)。此API返回的数据可能会更改,有时根本没有数据。这意味着有时,我无法检查我的代码是否有效。 当他们没有检查所有内容时,我不想让我的测试通过,而且每次没有数据时我也不希望它失败。 我正在使用Test,我注意到,测试中存在“Test was not run”状态,在某些情况下会分配给测试。我可以从我的单元测试代码中明确地调用这个状态,或者这是一个坏主意,并且这是一种众所周知的做法适用于这种情况吗?

2 个答案:

答案 0 :(得分:2)

查看TestCategory属性。对于因上游层而可能失败的所有测试,我们将这些测试标记为Integration。然后,您可以在测试资源管理器中按特征过滤测试。

[TestMethod, TestCategory("Integration")]
public void MyTest()

答案 1 :(得分:2)

当您确定没有要测试的结果时,您应该执行的操作是调用Assert.Inconclusive()。测试资源管理器将显示结果,您还可以提供描述性字符串以指示发生了什么。

例如:

[Test}
public void TestGetResults()
{
    .. do GET operation
    if (getfailed)
    {
        Assert.Inconclusive("Unable to get data for test.";
        return;
    }
}