Этап с выполнением Selenium не прерывается по таймауту - PullRequest
0 голосов
/ 15 апреля 2020

У меня есть трубопровод со сценой для исполнения Selenium. Я ожидаю, что выполнение Selenium завершится, скажем, x минут. Если это не будет завершено в течение этого времени, я прерву этап. У меня следующий код для достижения того же самого -

pipeline {
    agent any

    stages {

        stage('Selenium Execution') {
            options {
                timeout(time: 3, unit: 'MINUTES')
            }
            steps {
                script {
                    catchError(buildResult: 'SUCCESS', stageResult: 'ABORTED') {
                        try {
                            <code to execute Selenium tests is here>
                            <after above selenium execution some other statements to execute>
                        } catch(org.jenkinsci.plugins.workflow.steps.FlowInterruptedException e) {
                            error "Selenium execution took longer than expected"
                        }
                    }

                }
            }
        }

    }
}

Когда запускается сборка, тесты здесь занимают более 3 минут (что определено как тайм-аут) и, следовательно, ожидают выдачу ошибки Selenium execution took longer than expected и этапа отмены.

Но в выводе консоли после истечения времени ожидания я вижу утверждение - Sending interrupt signal to process. После этого оператора я вижу, что исполняется часть кода Selenium, написанного для выполнения после теста, например: снимок экрана et c.

После этого выполнение не останавливается, а остальные операторы на этапе казнены. И ожидаемая ошибка - Selenium execution took longer than expected не генерируется и, следовательно, этап не прерывается.

Однако тот же код прекрасно работает, если нет Selenium Execution.

Пожалуйста, помогите мне разобраться в этой ситуации, где Я могу прервать сценическое исполнение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...