I spent a couple of hours trying to find out why the #obsoleteClasses test sporadically fails. I���ve found one candidate that fixes all the failures that I could produces. Simply put, any test that does something AST related (e.g. runs critics) *has to* reset the ASTCache during #tearDown:
ASTCache reset.
I���ve found two test classes that needed to be adapted: SmalllintManifestCheckerTest and VSReleaseDevelopmentVersionCommandTest.
Cheers,
Max