@Before
  public void setup() throws DBException {
    orientDBClient = new OrientDBClient();

    Properties p = new Properties();
    // TODO: Extract the property names into final variables in OrientDBClient
    p.setProperty("orientdb.url", TEST_DB_URL);

    orientDBClient.setProperties(p);
    orientDBClient.init();
    orientDBConnection = new ODatabaseDocumentTx(TEST_DB_URL).open("admin", "admin");
    orientDBDictionary = orientDBConnection.getMetadata().getIndexManager().getDictionary();
  }
  @Mock(reentrant = true)
  public boolean shouldRun(Filter filter, Object m) {
    testMethod = null;

    if (!coverageMap.isEmpty()) {
      if (m instanceof JUnit38ClassRunner) {
        boolean noTestsToRun =
            verifyTestMethodsInJUnit38TestClassThatShouldRun((JUnit38ClassRunner) m);

        if (noTestsToRun) {
          return false;
        }
      } else if (m instanceof FrameworkMethod) {
        testMethod = ((FrameworkMethod) m).getMethod();
        Boolean shouldRun = shouldRunTestInCurrentTestRun(Test.class, testMethod);

        if (shouldRun != null) {
          return shouldRun;
        }
      }
    }

    Boolean shouldRun = MethodReflection.invoke(it, shouldRunMethod, filter, m);

    if (testMethod != null) {
      testMethods.put(testMethod, shouldRun);
    }

    return shouldRun;
  }