You have our sympathy. It looks like you have a fragile test syndrome. Ideally, a single change in unit test should only break one test - and this should be a real problem. As I said, "ideally." But this type of behavior is common and treatable.
I would recommend spending some time getting the team to do some root causes to analyze why all these tests break down. Yes, there are some fancy tools that keep track of which tests most often fail, and which ones fail. Some continuous integration servers have an integrated interface. But I suspect that if you just ask each other, you will know. I was, although it is, and the team always just knows from my own experience.
Anywho, a few other things I've seen that trigger this:
- Unit tests usually should not depend anymore on the class and method they test. Look at the addictions that have crept in. Make sure you use dependency injection to make testing easier.
- Are these really unique tests? Or do they experience the same thing over and over again? If they always fail together, why not just delete everything but one?
- Many people prefer integration into unit tests, as they get more money for their dollar. But at the same time, one change can break many tests. Perhaps you are writing integration tests?
- Perhaps they all work through some kind of common setup code for a lot of tests, causing them to burst in unison. Perhaps this can be mocked to isolate behavior.
source share