Question

Is it possible to stop a TeamCity build (the entire build, i.e. it won't execute subsequent steps) when a unit test fails? Ideally I'd also like it to terminate the currently executing step which in my case would be the Nunit Test Runner. In my circumstance there is no point in continuing the build if a single unit test fails. I've looked at Failure Conditions but I don't think they are applicable as the build continues to run.

Feature requested: http://youtrack.jetbrains.com/issue/YTF-3275

Was it helpful?

Solution 2

You can do it using nunit-console.exe. accordingly to the official documentation (http://nunit.org/index.php?p=consoleCommandLine&r=2.6.2) it provides a /stoponerror switch that does exactly what you need.

it can also generate an XML output that can be parsed by teamcity (there is a build feature for that) in order to populate the "test" tab.

OTHER TIPS

As you noted, TeamCity can run no further build steps on test failures in NUnit tests with "Only if build status is successful" step execution condition. However, that does not make the tests run stop until the step finish.

A related feature request is TW-23766.

The only workaround I can consider currently is not to use NUnit test runner and implement the logic inside the build script. For example, with nunit-console.exe like Manuel noted. If you choose to follow this route, consider using TeamCity Addin for NUNit.

on the build step after the unit tests, change the setting to Only if Build status is successful instead of if all previous steps finished successfully

see screenshot

also make sure that under failure conditions menu item the at least one test failed option is also ticked.

enter image description here

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top