@Parameterized.Parameters(name = "{0}") public static Collection<Object[]> getTestParameters() throws IOException { Collection<Object[]> filenames = new ArrayList<>(); try { H4EosFileFilter ff = new H4EosFileFilter(); TestDir.actOnAllParameterized(TestH4eos.testDir, ff, filenames); } catch (IOException e) { // JUnit *always* executes a test class's @Parameters method, even if it won't subsequently // run the class's tests // due to an @Category exclusion. Therefore, we must not let it throw an exception, or else // we'll get a build // failure. Instead, we return a collection containing a nonsense value (to wit, the exception // message). // // Naturally, if we execute a test using that nonsense value, it'll fail. That's fine; we need // to deal with the // root cause. However, it is more likely that the exception occurred because // "!isCdmUnitTestDirAvailable", and // as a result, all NeedsCdmUnitTest tests will be excluded. filenames.add(new Object[] {e.getMessage()}); } return filenames; }
@Test public void testCompare() throws IOException { long start = System.currentTimeMillis(); countOk += TestDir.actOnAll(TestDir.cdmUnitTestDir + "formats/mcidas", null, new MyAct()); long took = (System.currentTimeMillis() - start); System.out.printf("countOk=%d, countFail=%d took %d msecs %n", countOk, countFail, took); assert countFail == 0; }