package org.simantics.tests.modelled.junit.v2;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
private final ModelledSTSSuite suite;
private final List<ModelledSTSTestRunner> children;
- private Map<String, List<CommandSessionVariable>> storedVariables;
+ private Map<String, List<CommandSessionVariable>> storedVariables = new HashMap<>();
public ModelledSTSSuiteRunner(ModelledSTSSuite suite) throws InitializationError {
super(ModelledSTSSuiteRunner.class);
this.suite = suite;
this.children = new ArrayList<>(suite.getChildren().size());
+
+ // Do possible filtering
+ // Filter exclusions
+ String exclusionFilter = System.getProperty(ModelledSTSRunner.EXCLUSION_FILTER);
+ // Filter inclusions
+ String inclusionFilter = System.getProperty(ModelledSTSRunner.INCLUSION_FILTER);
for (ModelledSTSTest test : suite.getSortedChildren()) {
- children.add(new ModelledSTSTestRunner(test));
+ boolean add = true;
+ if (exclusionFilter != null) {
+ String[] filters = exclusionFilter.split(",");
+ if (startsWithAny(test, filters)) {
+ add = false;
+ }
+ }
+ if (inclusionFilter != null) {
+ String[] filters = inclusionFilter.split(",");
+ if (!startsWithAny(test, filters)) {
+ add = false;
+ }
+ }
+ if (add)
+ children.add(new ModelledSTSTestRunner(test));
}
}
+ private static boolean startsWithAny(ModelledSTSTest test, String[] filters) {
+ for (String filter : filters) {
+ if (test.getName().contains(filter)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
@Override
protected String getName() {
return suite.getName();
variables.addAll(storedVars);
}
}
+ notifier.fireTestStarted(description);
List<CommandSessionVariable> newVars = child.runWithVars(variables);
- storedVariables.put(child.getTest().getName(), newVars);
+// TODO: FIX THIS BY NOT ADDING ALL VARIABLES TO MEMORY (CAN BE HUGE)
+// storedVariables.put(child.getTest().getName(), newVars);
notifier.fireTestFinished(description);
- } catch (Exception e) {
+ } catch (Throwable e) {
notifier.fireTestFailure(new Failure(description, e));
}
}