Подтвердить что ты не робот

Как исправить "Отчеты об испытаниях были найдены, но ни один из них не является новым. Проходили ли тесты?" в Дженкинсе

Я получаю сообщение об ошибке "Отчеты об испытаниях были найдены, но ни один из них не является новым. Проходили ли тесты?" при попытке отправить результаты unit test по электронной почте. Причина в том, что у меня есть специальная работа Дженкинса, которая импортирует артефакты из тестового задания самому себе и отправляет результаты теста по электронной почте. Причина, по которой я делаю это, - это то, что я не хочу, чтобы Дженкинс посылал всем разработчикам электронную почту в течение ночи:), поэтому я "постпонирую" отправку по электронной почте, поскольку сам Дженкинс не поддерживает задержанные уведомления по электронной почте (к сожалению).

Однако, к моменту выполнения задания "отправить результаты теста по электронной почте", тесты составят часы, и я получаю ошибку, указанную в заголовке вопроса. Любые идеи о том, как обойти эту проблему?

4b9b3361

Ответ 1

Вы можете попробовать обновить отметки времени тестовых отчетов как шаг сборки ( "Выполнить оболочку script" ). Например.

cd path/to/test/reports
touch *.xml

Ответ 2

Обновление последней измененной даты также может быть достигнуто в самом gradle:

task jenkinsTest{
    inputs.files test.outputs.files
    doLast{
        def timestamp = System.currentTimeMillis()
        test.testResultsDir.eachFile { it.lastModified = timestamp }
    }
}

build.dependsOn(jenkinsTest)

Как уже упоминалось здесь: http://www.practicalgradle.org/blog/2011/06/incremental-tests-with-jenkins/

Ответ 3

Здесь обновленная версия для Jenkinsfile (декларативный трубопровод):

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                sh 'make build'
            }
        }
        stage('Test') {
            steps {
                sh 'make test'

                script {
                    def testResults = findFiles(glob: 'build/reports/**/*.xml')
                    for(xml in testResults) {
                        touch xml.getPath()
                    }
                }
            }
        }
    }

    post {
        always {
            archiveArtifacts artifacts: 'build/libs/**/*.jar', fingerprint: true
            junit 'build/reports/**/*.xml'
        }
    }
}

Ответ 4

Выполнить cd path/to/test/reports touch *.xml

не работает для меня, но выполняйте следующие команды:

mvn clean test через консоль или через jenkins.

Это создает новые отчеты об испытаниях.

Ответ 5

Была такая же проблема для заданий, выполняемых повторно (каждые 30 минут).

Для задания перейдите к Конфигурация, Сборка, Дополнительно и в разделе Переключатели добавьте: --stacktrace --continue --rerun-tasks

Ответ 6

Убедитесь, что вы указали правильный путь против "тестовых отчетов XML" в конфигурации jenkins, например "target/surefire-reports/*. xml" Нет необходимости касаться *.xml, поскольку jenkins не будет жаловаться, даже если результат теста xml файла не изменится.

Ответ 7

если вы используете ведомое устройство Windows, вы можете "коснуться" результатов, используя groovy этап конвейера с powershell:

powershell 'ls "junitreports\\*.*" | foreach-object { $_.LastWriteTime = Get-Date }'

Ответ 8

Это происходит, если вы используете тестовый отчет, который не был изменен этим заданием во время выполнения.

В случае, если для целей тестирования, если вы тестируете с уже созданным файлом, добавьте приведенную ниже команду в задание jenkins под Build> Execute Shell

chmod -R 775 /root/.jenkins/workspace/JmeterTest/output.xml

echo " " >> /root/.jenkins/workspace/JmeterTest/output.xml

Приведенная выше команда изменяет временную метку файла, поэтому ошибка не будет отображаться.

Примечание: чтобы добиться того же в Execute Shell вместо вышеупомянутого, не пытайтесь переименовывать файл с помощью команды move mv и т.д. Он не будет работать, добавлять и удалять то же самое только для метки времени изменения файла.

Ответ 9

Для меня такие команды, как chmod -R 775 test-Results.xml или touch test-Results.xml не работают из-за ошибки разрешения. В качестве обходного пути можно указать новый файл в настройках отчета о тестировании и команду скопировать старый файл отчета xml в новый файл.

enter image description here

Ответ 10

Вы можете добавить следующую команду оболочки в раздел "Предварительные шаги" при настройке своей работы на Jenkins

mvn clean test

это очистит тест

Ответ 11

Решением для меня было удаление node_modules и изменение версии node (от 7.1 до 8.4) на jenkins. Это.