帮助我弄清楚如何重新启动 mstest 测试(我刚刚切换到它)。我知道没有内置的重新启动功能,但我知道您可以创建自定义属性。我尝试创建一个“重试”属性,但如果测试失败,它不会重新运行测试。
[AttributeUsage(AttributeTargets.Method, AllowMultiple = false)]
public class RetryAttribute : TestMethodAttribute
{
private readonly int _tryCount;
public RetryAttribute(int tryCount)
{
_tryCount = tryCount;
}
public override TestResult[] Execute(ITestMethod testMethod)
{
var results = new List<TestResult>();
for (int i = 0; i <= _tryCount; i++)
{
TestResult result = base.Execute(testMethod)[0];
results.Add(result);
if (result.Outcome == UnitTestOutcome.Passed)
break;
if (i < _tryCount)
{
Logger.LogMessage($"Retry {i + 1}/{_tryCount} for test {testMethod.TestMethodName}");
}
}
return results.ToArray();
}
}
我在您共享的代码中看到两个问题:
_tryCount + 1
次,而不是 _tryCount
。