X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.tests.modelled%2Fsrc%2Forg%2Fsimantics%2Ftests%2Fmodelled%2Fjunit%2Fv2%2FModelledSTSRunner.java;h=29628cec061e8b4ef5117da84d45947524cd3893;hp=e77224b58c72caa59b1e290831e817803844368e;hb=9c866c82a391db00ae11913c61d39d7dc46b14d0;hpb=1ec0193a5a5b8f368b03adb24acd762838ddf8ea diff --git a/bundles/org.simantics.tests.modelled/src/org/simantics/tests/modelled/junit/v2/ModelledSTSRunner.java b/bundles/org.simantics.tests.modelled/src/org/simantics/tests/modelled/junit/v2/ModelledSTSRunner.java index e77224b58..29628cec0 100644 --- a/bundles/org.simantics.tests.modelled/src/org/simantics/tests/modelled/junit/v2/ModelledSTSRunner.java +++ b/bundles/org.simantics.tests.modelled/src/org/simantics/tests/modelled/junit/v2/ModelledSTSRunner.java @@ -3,6 +3,7 @@ package org.simantics.tests.modelled.junit.v2; import java.util.ArrayList; import java.util.Collection; import java.util.List; +import java.util.stream.Collectors; import org.eclipse.core.runtime.NullProgressMonitor; import org.junit.runner.Description; @@ -18,6 +19,8 @@ import org.simantics.tests.modelled.utils.STSSuiteTestCollector; public class ModelledSTSRunner extends ParentRunner { + public static final String EXCLUSION_FILTER = "org.simantics.tests.modelled.excludeFilter"; + private final List children; public ModelledSTSRunner(Class testClass) throws InitializationError { @@ -25,8 +28,20 @@ public class ModelledSTSRunner extends ParentRunner { try { initialize0(); Collection suites = STSSuiteTestCollector.collectTests(); - children = new ArrayList<>(suites.size()); - for (ModelledSTSSuite suite : suites) { + String exclusionFilter = System.getProperty(EXCLUSION_FILTER); + Collection filtered; + if (exclusionFilter != null) { + String[] filters = exclusionFilter.split(","); + filtered = suites.stream().filter(s -> !startsWithAny(s, filters)).collect(Collectors.toList()); + } else { + filtered = suites; + } + // Sort by priority + List sorted = filtered.stream().sorted((o1, o2) -> Integer.compare(o1.getPriority(), o2.getPriority())).collect(Collectors.toList()); + + + children = new ArrayList<>(sorted.size()); + for (ModelledSTSSuite suite : sorted) { children.add(new ModelledSTSSuiteRunner(suite)); } } catch (Exception e) { @@ -34,6 +49,15 @@ public class ModelledSTSRunner extends ParentRunner { } } + private static boolean startsWithAny(ModelledSTSSuite suite, String[] filters) { + for (String filter : filters) { + if (suite.getName().contains(filter)) { + return true; + } + } + return false; + } + @Override protected List getChildren() { return children;