在 MStest 中重试失败的测试

问题描述 投票:0回答:1

帮助我弄清楚如何重新启动 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();
        }
    }
c# selenium-webdriver mstest
1个回答
0
投票

我在您共享的代码中看到两个问题:

  • 循环将尝试测试
    _tryCount + 1
    次,而不是
    _tryCount
  • 您包含了所有结果,因此如果测试失败一次并重试然后通过,仍会报告失败。
© www.soinside.com 2019 - 2024. All rights reserved.