Teamcity перезапустил определенные неудачные нестабильные тесты

У меня есть Teamcity 7.1 и около 1000 тестов. Многие тесты нестабильны и случайно проваливаются. Даже один тест не пройден, вся сборка не пройдена, и запуск новой сборки занимает 1 час.

Поэтому я хотел бы иметь возможность настроить Teamcity на повторный запуск неудачных тестов в течение той же сборки определенное количество времени. Любой успех теста должен рассматриваться как успех, а не провал. Является ли это возможным?

Также теперь тесты в каком-то модуле не пройдены Teamcity не переходит к следующему модулю. Как это исправить?

3 ответа

С уважением, я думаю, у вас может быть эта проблема не с той стороны. Случайно провальный тест не дает вам никакого значения в качестве показателя детерминированного поведения. Либо исправьте случайность (с помощью насмешек и т. Д.), Либо игнорируйте тесты.

Если вам абсолютно необходимо, я бы поставил циклы вокруг вашего тестового кода и поймал, скажем, 5 сбоев, прежде чем выдать исключение как "подлинный" сбой. Примерно такой пример C# подойдет...

    public static void TestSomething()
    {
        var counter = 0;
        while (true)
        {
            try
            {
                // add test code here...
                return;
            }
            catch (Exception) // catch more specific exception(s)...
            {
                if (counter == 4)
                {
                    throw;
                }

                counter++;
            }
        }
    }

Хотя я ценю проблемы, которые могут возникнуть при тестировании асинхронного кода, я использую @JohnHoerr для этого, вам действительно нужно исправить тесты.

Функция повторного запуска тестов является частью плагина Maven Surefire, если вы выполните mvn -Dsurefire.rerunFailingTestsCount=2 testтогда тесты будут выполняться до тех пор, пока они не пройдут или число повторов не будет исчерпано.

Конечно, -Dsurefire.rerunFailingTestsCount может быть использован в TeamCity или любом другом CI Server.

Смотрите: http://maven.apache.org/surefire/maven-surefire-plugin/examples/rerun-failing-tests.html

Другие вопросы по тегам