sbt ignore test failures sbt ignore test failures jenkins jenkins

sbt ignore test failures


Finally found a solution myself.

In SBT you can define a new task A which captures the result of another task B. This dependency ensures that task B is run when the new task A is started. By capturing the result, the result of task B is not the result of task A so if B fails, A does not (have to) fail.

So in this case, I added created a new 'ciTests' tasks to the 'build.sbt'

// Define a special test task which does not fail when any test fails,// so sequential tasks (like SonarQube analysis) will be performed no matter the test result.lazy val ciTests = taskKey[Unit]("Run tests for CI")ciTests := {  // Capture the test result val testResult = (test in Test).result.value}

Now in the Jenkins job it build the project using SBT with commands (using SCoverage SBT plugin):

update coverage ciTests coverageReport

This build will succeed ignoring any failing tests. Therefore a next build step to start SonarRunner will start the analysis of the Scala project and put the results in SonarQube.

Thanks to @hugo-zwaal for pointing me to this answer which helped me solving my issue.