diff options
Diffstat (limited to 'src/vogar/target/junit/JUnitTargetRunner.java')
-rw-r--r-- | src/vogar/target/junit/JUnitTargetRunner.java | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/vogar/target/junit/JUnitTargetRunner.java b/src/vogar/target/junit/JUnitTargetRunner.java index 3fd2232..906115a 100644 --- a/src/vogar/target/junit/JUnitTargetRunner.java +++ b/src/vogar/target/junit/JUnitTargetRunner.java @@ -44,19 +44,23 @@ public final class JUnitTargetRunner implements TargetRunner { private final Class<?> testClass; private final RunnerParams runnerParams; + private final String[] excludeFilters; + public JUnitTargetRunner(TargetMonitor monitor, AtomicReference<String> skipPastReference, TestEnvironment testEnvironment, int timeoutSeconds, Class<?> testClass, - String qualification, String[] args) { + String qualification, String[] excludeFilters, String[] args) { this.monitor = monitor; this.skipPastReference = skipPastReference; this.testEnvironment = testEnvironment; this.testClass = testClass; + this.excludeFilters = excludeFilters; TimeoutAndAbortRunRule timeoutRule = new TimeoutAndAbortRunRule(timeoutSeconds); runnerParams = new RunnerParams(qualification, args, timeoutRule); } + @Override public boolean run() { // Use JUnit infrastructure to run the tests. RunnerBuilder builder = new VogarRunnerBuilder(runnerParams); @@ -79,6 +83,12 @@ public final class JUnitTargetRunner implements TargetRunner { } try { + new ExcludeFilter(excludeFilters).apply(runner); + } catch (NoTestsRemainException e) { + return true; + } + + try { JUnitCore core = new JUnitCore(); // The TestEnvironmentRunListener resets static state between tests. core.addListener(new TestEnvironmentRunListener(testEnvironment)); |