In addition to several time-saving features supporting quick testing and getting notifications as soon as the first problems appear, TeamCtiy now enables even faster feedback on tests results resulting in more rapid and efficient development. This new feature can become especially useful if your builds take rather long time (this case is true for our company as well) when the waste of time can become a critical factor of the project success.
When setting up the build runner of your build configuration with Ant and Ipr build runners and JUnit and TestNG frameworks you can now select to run:
- recently failed tests first (tests failed in previous finished or running builds and tests which fail from time to time)
- new and modified tests first (tests which were recently added or edited in your changelists and included in the running build)
Selecting these options you forces your build run these types of tests before any others.
You can select either one or both of these types of tests and use the feature if you run tests using your own custom build runner.
Now just a few words about how tests reordering mechanism works:
TeamCity provides tests that should be run first (test classes), after that when a JUnit task starts, it checks whether it includes these tests. If at least one test is included, TeamCity generates a new fileset containing included tests only and processes it before any other filesets. It also patches other filesets to exclude tests which were added to the automatically generated fileset. After that JUnit task starts and runs as usual.