@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()); } });
private void execute(Test test, TestResultProcessor resultProcessor) { execute(execSpec -> { test.copyTo(execSpec); execSpec.setClasspath(test.getClasspath()); }, resultProcessor); }
@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() {
"--module-path", testJava.getClasspath().getAsPath(), "--patch-module", moduleName + "=" + testSourceSet.getJava().getOutputDir().toPath(), "--add-modules", "ALL-MODULE-PATH"
private void configureTestTask(final Test test, final ImmutableSet<String> moduleNameIset) { setModuleNamesInputProperty(test, moduleNameIset); test.doFirst(task -> { final Project project = test.getProject(); final List<String> args = test.getJvmArgs(); addModulePathArgument(args, test.getClasspath()); args.add(OPTION_ADD_MODULES); args.add(ALL_MODULE_PATH); KnownTestFrameworkModuleInfo.from(test).configureTestTask(args, moduleNameIset); addPatchModuleArguments(args, moduleNameIset, project.files(getSourceSets(project).getByName(TEST_SOURCE_SET_NAME).getJava().getOutputDir())); test.setClasspath(project.files()); }); }
private List<String> collectTestNames(Test testTask) { ClassNameCollectingProcessor processor = new ClassNameCollectingProcessor(); Runnable detector; final FileTree testClassFiles = testTask.getCandidateClassFiles(); if (testTask.isScanForTestClasses()) { TestFrameworkDetector testFrameworkDetector = testTask.getTestFramework().getDetector(); testFrameworkDetector.setTestClassesDirectory(testTask.getTestClassesDir()); testFrameworkDetector.setTestClasspath(testTask.getClasspath()); detector = new PluginTestClassScanner(testClassFiles, processor); } else { detector = new PluginTestClassScanner(testClassFiles, processor); } final Object testTaskOperationId = OperationIdGenerator.generateId(testTask); new TestMainAction(detector, processor, new NoOpTestResultProcessor(), new TrueTimeProvider(), testTaskOperationId, testTask.getPath(), String.format("Gradle Eclipse Test Run %s", testTask.getPath())).run(); LOGGER.info("collected test class names: {}", processor.classNames); return processor.classNames; }