@Override public void execute(Task task) { List<String> args = new ArrayList<>(); args.add("--module-path"); args.add(testTask.getClasspath().getAsPath()); args.add("--add-modules"); args.add("ALL-MODULE-PATH"); args.add("--add-reads"); args.add(module.geName() + "=junit"); args.add("--patch-module"); args.add(module.geName() + "=" + test.getJava().getOutputDir()); testTask.setJvmArgs(args); testTask.setClasspath(project.files()); } });
@Override public void configure(Task task) { LOGGER.info("running configurer for :" + task.getName()); Test test = (Test) task; ModuleDefinition moduleDefinition = moduleInfoService.findModuleDefinition( task.getProject().getName()).orElse(null); if (moduleDefinition == null) { throw new IllegalStateException("Cant find module definition for " + task.getProject().getName() + " inside task " + task.getName()); } test.doFirst(action -> { JavaSawExtension extension = (JavaSawExtension) project.getExtensions().getByName(JAVA_SAW_TEST_EXT_NAME); JavaCompileTaskArgs compilerArgs = argsPatcher.patch(test.getClasspath().getAsPath(), extension, moduleDefinition); CompileArg arg = compilerArgs.getArgByName(JavaCompileTaskArgs.MODULE_PATH); arg.getArguments().addAll(mainOutputDirsPath()); List<String> compilerResultArgs = compilerArgs.getCompilerResultArgs(); compilerResultArgs.add(ADD_READS); compilerResultArgs.add(moduleDefinition.getName() + "=" + "org.junit.jupiter.api"); // todo compilerResultArgs.add(PATCH_MODULE); compilerResultArgs.add(moduleDefinition.getName() + "=" + testOutputDirsPath()); compilerResultArgs.add(ADD_MODULE); compilerResultArgs.add("ALL-MODULE-PATH"); // todo test.setJvmArgs(compilerResultArgs); LOGGER.debug("result jvm arguments is : " + test.getJvmArgs()); }); } private List<String> mainOutputDirsPath() {
testJava.setJvmArgs(args); testJava.setClasspath(project.files()); });