@Test
 public void testNGRunCategoryAB() {
   OutputValidator validator =
       unpackTestNG().groups("CategoryA AND CategoryB").debugLogging().executeTest();
   validator.verifyErrorFreeLog();
   validator.assertTestSuiteResults(2, 0, 0, 0);
   validator.verifyTextInLog("BasicTest.testInCategoriesAB()");
   validator.verifyTextInLog("CategoryCTest.testInCategoriesAB()");
 }
 @Test
 public void testExcludedGroups() {
   OutputValidator validator = unpackJUnit().setExcludedGroups("junit4.CategoryC").executeTest();
   validator.verifyErrorFreeLog();
   validator.assertTestSuiteResults(5, 0, 0, 0);
   validator.verifyTextInLog("catA: 2");
   validator.verifyTextInLog("catB: 2");
   validator.verifyTextInLog("catC: 0");
   validator.verifyTextInLog("catNone: 1");
   validator.verifyTextInLog("NoCategoryTest.CatNone: 1");
 }
 @Test
 public void testNGRunCategoryNotC() {
   OutputValidator validator = unpackTestNG().groups("!CategoryC").debugLogging().executeTest();
   validator.verifyErrorFreeLog();
   validator.assertTestSuiteResults(8, 0, 0, 0);
   validator.verifyTextInLog("catA: 2");
   validator.verifyTextInLog("catB: 2");
   validator.verifyTextInLog("catC: 0");
   validator.verifyTextInLog("catNone: 1");
   validator.verifyTextInLog("mA: 2");
   validator.verifyTextInLog("mB: 2");
   validator.verifyTextInLog("mC: 0");
   validator.verifyTextInLog("NoCategoryTest.CatNone: 1");
 }
 @Test
 public void categoryAB() {
   OutputValidator validator =
       unpackJUnit().groups("junit4.CategoryA AND junit4.CategoryB").executeTest();
   validator.verifyErrorFreeLog();
   validator.assertTestSuiteResults(2, 0, 0, 0);
   validator.verifyTextInLog("catA: 1");
   validator.verifyTextInLog("catB: 1");
   validator.verifyTextInLog("catC: 0");
   validator.verifyTextInLog("catNone: 0");
   validator.verifyTextInLog("mA: 1");
   validator.verifyTextInLog("mB: 1");
   validator.verifyTextInLog("mC: 0");
 }