8

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

Mark Walsh
  • 3,241
  • 1
  • 24
  • 46
  • Not exactly what you want, but close: http://stackoverflow.com/questions/15254581/teamcity-running-build-steps-even-when-tests-fail – adrianbanks Jul 30 '13 at 16:09
  • 1
    It's close but no cigar, although you have just reminded me that I need to be careful of this. There is a solution, check the last comment of this http://youtrack.jetbrains.com/issue/TW-17002. This isn't what I want however, I want the step to stop executing when an test fails. – Mark Walsh Jul 30 '13 at 16:17

3 Answers3

6

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.

Yaegor
  • 1,771
  • 9
  • 12
3

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.

Manuel Spezzani
  • 1,041
  • 7
  • 15
  • This seems like the only way to do this, it's hackish and I don't like it so I've contacted TeamCity to see if I can submit a feature request. – Mark Walsh Jul 31 '13 at 10:42
  • Is this still the case in 8.0.5? Seems like it should be fixed by now. Is XUnit or MSTest better supported? – Mike Cole Dec 18 '13 at 17:45
  • As of TC 2019.1 you can stop the build from your scripts https://stackoverflow.com/a/56034200/586609 – Stanislav Berkov May 27 '22 at 20:40
0

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

Gerrie Pretorius
  • 3,381
  • 2
  • 31
  • 34