Visual studio 2015 动态重新运行失败的测试

Visual studio 2015 动态重新运行失败的测试,visual-studio-2015,mstest,Visual Studio 2015,Mstest,我的一些测试需要外部资源。这种情况很少发生,但有时资源会出现超时异常,并导致测试失败 我可以知道失败的原因是否是超时,我想让测试在完全失败之前有第二次机会运行 那么,有没有办法在测试结束后重新运行测试(在TestCleanup内部)?没有。您必须检查相关单元测试中的超时,并在那里实现您的重试逻辑 这听起来比实际情况更复杂。在您的testmethod中,您可以编写自己的重试逻辑,或者使用企业库中的某些内容传入调用,即,如果在您的testmethod中有以下内容: var result = Inst

我的一些测试需要外部资源。这种情况很少发生,但有时资源会出现超时异常,并导致测试失败

我可以知道失败的原因是否是超时,我想让测试在完全失败之前有第二次机会运行


那么,有没有办法在测试结束后重新运行测试(在TestCleanup内部)?

没有。您必须检查相关单元测试中的超时,并在那里实现您的重试逻辑

这听起来比实际情况更复杂。在您的testmethod中,您可以编写自己的重试逻辑,或者使用企业库中的某些内容传入调用,即,如果在您的testmethod中有以下内容:

var result = Instance.PossibleTimeoutMethod();
然后你可以这样做:

[TestMethod, TestCategory("SLOW")]
public void MyTestMethod()
{
    // Arrange (this is not real code, just made for example)
    var retryPolicy = new RetryPolicy{
        attempts = 3,
        timeBetweenAttempts = TimeSpan.FromSeconds(2),
        TimeToWaitBeforeThrowing = TimeSpan.FromSeconds(30)
    }
    ResultType result = null;

    // Act
    retryPolicy.ExecuteAction(() => result = Instance.PossibleTimeoutMethod());

    // Assert
    result.ShouldEqual(expectedResult);
}
企业库对您来说可能有些过火,但此处仅供参考: