}
@Override
public Description getDescription() {
Description desc = Description.createSuiteDescription(prefix);
this.desc = desc;
try {
List<String> modules = getRecursiveModuleList(URIUtil.create("rascal", "", "/" + prefix.replaceAll("::", "/")), evaluator.getResolverRegistry());
for (String module : modules) {
String name = prefix + "::" + module;
try {
evaluator.doImport(new NullRascalMonitor(), name);
}
catch (Throwable e) {
throw new RuntimeException("Could not import " + name + " for testing...", e);
}
Description modDesc = Description.createSuiteDescription(name);
desc.addChild(modDesc);
for (AbstractFunction f : heap.getModule(name.replaceAll("\\\\","")).getTests()) {
if (!(f.hasTag("ignore") || f.hasTag("Ignore") || f.hasTag("ignoreInterpreter") || f.hasTag("IgnoreInterpreter"))) {
modDesc.addChild(Description.createTestDescription(getClass(), computeTestName(f.getName(), f.getAst().getLocation())));
}
}
}