Tests... …should have method names that say what the test is testing .(ex: NumericCodesShouldNotContain911And666). If it fails, it should immediately tell you what is not working.…must have at least one Assert.…must test only one thing. However, you can Assert multiple things about that test to prove it's true.…must not depend on the order that tests are run.…must not depend on data that may have been destroyed by another test.…must not destroy data that other tests are expecting.…should not be overly complex with many layers. (KISS principle)…shall not write to hard-coded folders. (C://foo/...)…should always be able to run in a CI/CD (AppVeyor) environment and without specific/manual setup. (Otherwise mark manual tests as [Ignore]) If you find an “illegal” test, decorate it with [Ignore( "Rewrite; <reason>" )] or fix it.