0
0
Jenkinsdevops~20 mins

Failing builds on test failures in Jenkins - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Test Failure Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
💻 Command Output
intermediate
2:00remaining
What happens when a Jenkins pipeline stage runs tests that fail?

Consider a Jenkins pipeline with a test stage that runs unit tests using a shell command. If some tests fail, what will Jenkins do by default?

Jenkins
stage('Test') {
  steps {
    sh 'pytest tests/'
  }
}
AThe build will fail and stop immediately after the test command returns a non-zero exit code.
BThe build will continue to the next stage regardless of test failures.
CThe build will mark the test stage as unstable but continue running other stages.
DThe build will ignore test failures and mark the build as successful.
Attempts:
2 left
💡 Hint

Think about how shell commands signal failure in Jenkins pipelines.

Configuration
intermediate
2:00remaining
How to configure Jenkins to fail build on test failures using JUnit plugin?

You want Jenkins to run tests and fail the build if any test fails, using the JUnit plugin to parse test reports. Which post-build action configuration ensures this?

APublish JUnit test result report with 'Mark build as unstable' option checked and no fail option.
BDo not publish JUnit reports; rely on shell exit codes only.
CPublish JUnit test result report with 'Fail the build if test results are unstable' option checked.
DPublish JUnit test result report without any fail or unstable options checked.
Attempts:
2 left
💡 Hint

Look for the option that causes build failure on test failures in the JUnit plugin settings.

Troubleshoot
advanced
2:00remaining
Why does Jenkins build succeed even though tests fail in a pipeline?

You have a Jenkins pipeline running tests with a shell command. Tests fail, but the build still shows success. What is the most likely cause?

Jenkins
stage('Test') {
  steps {
    sh(script: 'pytest tests/', returnStatus: true)
  }
}
AThe tests actually passed, so the build is correct.
BThe shell step uses 'returnStatus: true', so it returns the exit code but does not fail the build automatically.
CThe Jenkins agent is offline, so the build status is not updated.
DThe pipeline syntax is incorrect, causing Jenkins to ignore test failures.
Attempts:
2 left
💡 Hint

Check how the shell step handles exit codes with 'returnStatus'.

🔀 Workflow
advanced
2:00remaining
How to fail a Jenkins pipeline build on test failures when using 'returnStatus' in shell step?

You run tests in a Jenkins pipeline using a shell step with 'returnStatus: true' to capture exit code. How do you fail the build if tests fail?

Jenkins
stage('Test') {
  steps {
    script {
      def status = sh(script: 'pytest tests/', returnStatus: true)
      // What to do here?
    }
  }
}
AAdd 'echo "Tests failed"' without failing the build.
BAdd 'return status' to propagate the exit code automatically.
CAdd 'sh "exit $status"' to retry the tests.
DAdd 'if (status != 0) { error("Tests failed") }' to explicitly fail the build.
Attempts:
2 left
💡 Hint

Think about how to make the pipeline fail explicitly based on a variable.

Best Practice
expert
3:00remaining
Best practice to ensure Jenkins build fails on test failures and reports results clearly

Which approach best ensures Jenkins build fails on test failures and provides clear test reports in the UI?

ARun tests with shell step capturing exit code, then publish JUnit reports with 'Fail the build if test results are unstable' enabled.
BRun tests with shell step and rely on console output only, no JUnit reports.
CRun tests with shell step ignoring exit code, then only echo test results without publishing reports.
DRun tests with shell step and mark build unstable regardless of test results.
Attempts:
2 left
💡 Hint

Consider both failing the build and showing test results in Jenkins UI.