When a test fails, there are three options:
- The production code is broken, and it needs to be fixed.
- The test is broken (or not up to date with recent changes to production code), and the test needs to be fixed.
- The behaviour specified by the test is not anymore needed, and the test can be removed.
Before writing any new code, all tests must pass. When tests fail, you must fix them immediately, or revert your changes. Otherwise you can not be sure that when the tests fail, whether it was because of the change that you made one minute ago, or whether it is just a false alarm.
Ignoring failing tests is a path to the dark side. If you ignore them long enough, the test suit will rot as even more tests fail, and it will lose its value and you need to throw the tests away. And then when you can not anymore rely on the test suite, you will hesitate to improve the design of the production code, and also the production code will begin to rot. Finally it's not anymore possible to maintain the production code, and you will need to throw also it away and rewrite it.