MSTEST / VSTEST RETRY (повторный) логикаC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 MSTEST / VSTEST RETRY (повторный) логика

Сообщение Anonymous »

К сожалению, не существует нативной логики повторного повторного теста для mStest /vStest < /p>
Я пытаюсь реализовать пользовательскую логику, такую ​​как: < /p>
Тест Часть: < /p>

Код: Выделить всё

    static int testNum = 1;

[TestMethod]
public void RerunTestOnce_Test()
{
testNum = testNum + 1;
Console.WriteLine("Test started");
Assert.IsTrue(testNum == 3, $"Test Failed with number {testNum}");

}
< /code>
Этот тест должен сработать в первый раз, и пройти второй, когда тестовая охват 3. < /p>
 up: это Синтетический пример для эмуляции сбоя при первом запуске. Реальные тесты сложны и имеют методы поиска пользовательского интерфейса и другую работу с системой и сетью, и нет никакой уверенности в том, что все будет хорошо во время больших и длинных тестовых наборов.  
Существует особый метод для этого -  reruntestonce () , называемый в TestCleanup: 
    [TestCleanup]
public void TestCleanup()
{
TestHelper.RerunTestOnce(TestContext, this);
}
< /code>
и здесь реализация Reruntestonce в классе Test Helper. p>
 public static void RerunTestOnce(TestContext testContext, object testInstance)
{
if (testContext.CurrentTestOutcome == UnitTestOutcome.Failed)
{
var type = testInstance.GetType();
if (type != null)
{
var testMethod = type.GetMethod(testContext.TestName);
var initMethod = type.GetMethods().SingleOrDefault(m=>m.CustomAttributes.SingleOrDefault(a=>a.AttributeType.Name == "TestInitializeAttribute")!= null);
var cleanupMethod = type.GetMethods().SingleOrDefault(m => m.CustomAttributes.SingleOrDefault(a => a.AttributeType.Name == "TestCleanupAttribute") != null);

Console.WriteLine($"[WARNING] Method [{testMethod}] was failed in first attempt. Trying to rerun...");
try
{
initMethod.Invoke(testInstance, null);
testMethod.Invoke(testInstance, null);
}
catch
{
Console.WriteLine($"[ERROR] Method [{testMethod}] was failed in second attempt. Rerun finished.");
}
}
}
}
< /code>
Все в порядке, при прохождении второго метода попыток проходит, но в конце я вижу неудачное сообщение об ошибке и утверждаю сообщение об ошибке с первой попытки: < /p>
Test Failed - RerunTestOnce_Test
Message: Assert.IsTrue failed. Test Failed with number 2
Как и когда MSTest создает результат теста - возможно ли обновить результат теста после второй попытки последнего результата?

Подробнее здесь: https://stackoverflow.com/questions/534 ... erun-logic
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Логика повтора (повторного запуска) MSTest/VSTest
    Anonymous » » в форуме C#
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous
  • Получаю неправильный ответ, хотя логика моего кода выглядит такой же, как логика решения [закрыто]
    Anonymous » » в форуме C++
    0 Ответы
    60 Просмотры
    Последнее сообщение Anonymous
  • Политика Polly Retry блокирует или ждет успеха
    Anonymous » » в форуме C#
    0 Ответы
    39 Просмотры
    Последнее сообщение Anonymous
  • Функция оболочки Polly Try and Retry с универсальным
    Гость » » в форуме C#
    0 Ответы
    21 Просмотры
    Последнее сообщение Гость
  • Функция оболочки Polly Try and Retry с универсальным
    Anonymous » » в форуме C#
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»