use of org.gradle.api.internal.tasks.testing.WorkerTestClassProcessorFactory in project gradle by gradle.
the class DefaultTestExecuter method execute.
@Override
public void execute(final Test testTask, TestResultProcessor testResultProcessor) {
final TestFramework testFramework = testTask.getTestFramework();
final WorkerTestClassProcessorFactory testInstanceFactory = testFramework.getProcessorFactory();
final BuildOperationWorkerRegistry.Operation currentOperation = buildOperationWorkerRegistry.getCurrent();
final Set<File> classpath = ImmutableSet.copyOf(testTask.getClasspath());
final Factory<TestClassProcessor> forkingProcessorFactory = new Factory<TestClassProcessor>() {
public TestClassProcessor create() {
return new ForkingTestClassProcessor(workerFactory, testInstanceFactory, testTask, classpath, testFramework.getWorkerConfigurationAction(), moduleRegistry, currentOperation);
}
};
Factory<TestClassProcessor> reforkingProcessorFactory = new Factory<TestClassProcessor>() {
public TestClassProcessor create() {
return new RestartEveryNTestClassProcessor(forkingProcessorFactory, testTask.getForkEvery());
}
};
TestClassProcessor processor = new MaxNParallelTestClassProcessor(getMaxParallelForks(testTask), reforkingProcessorFactory, actorFactory);
final FileTree testClassFiles = testTask.getCandidateClassFiles();
Runnable detector;
if (testTask.isScanForTestClasses()) {
TestFrameworkDetector testFrameworkDetector = testTask.getTestFramework().getDetector();
testFrameworkDetector.setTestClassesDirectory(testTask.getTestClassesDir());
testFrameworkDetector.setTestClasspath(classpath);
detector = new DefaultTestClassScanner(testClassFiles, testFrameworkDetector, processor);
} else {
detector = new DefaultTestClassScanner(testClassFiles, null, processor);
}
final Object testTaskOperationId = buildOperationExecutor.getCurrentOperation().getParentId();
new TestMainAction(detector, processor, testResultProcessor, new TrueTimeProvider(), testTaskOperationId, testTask.getPath(), "Gradle Test Run " + testTask.getIdentityPath()).run();
}
use of org.gradle.api.internal.tasks.testing.WorkerTestClassProcessorFactory in project gradle by gradle.
the class DefaultTestExecuter method execute.
@Override
public void execute(final JvmTestExecutionSpec testExecutionSpec, TestResultProcessor testResultProcessor) {
final TestFramework testFramework = testExecutionSpec.getTestFramework();
final WorkerTestClassProcessorFactory testInstanceFactory = testFramework.getProcessorFactory();
final Set<File> classpath = ImmutableSet.copyOf(testExecutionSpec.getClasspath());
final Set<File> modulePath = ImmutableSet.copyOf(testExecutionSpec.getModulePath());
final List<String> testWorkerImplementationModules = testFramework.getTestWorkerImplementationModules();
final Factory<TestClassProcessor> forkingProcessorFactory = new Factory<TestClassProcessor>() {
@Override
public TestClassProcessor create() {
return new ForkingTestClassProcessor(workerLeaseService, workerFactory, testInstanceFactory, testExecutionSpec.getJavaForkOptions(), classpath, modulePath, testWorkerImplementationModules, testFramework.getWorkerConfigurationAction(), moduleRegistry, documentationRegistry);
}
};
final Factory<TestClassProcessor> reforkingProcessorFactory = new Factory<TestClassProcessor>() {
@Override
public TestClassProcessor create() {
return new RestartEveryNTestClassProcessor(forkingProcessorFactory, testExecutionSpec.getForkEvery());
}
};
processor = new PatternMatchTestClassProcessor(testFilter, new RunPreviousFailedFirstTestClassProcessor(testExecutionSpec.getPreviousFailedTestClasses(), new MaxNParallelTestClassProcessor(getMaxParallelForks(testExecutionSpec), reforkingProcessorFactory, actorFactory)));
final FileTree testClassFiles = testExecutionSpec.getCandidateClassFiles();
Runnable detector;
if (testExecutionSpec.isScanForTestClasses() && testFramework.getDetector() != null) {
TestFrameworkDetector testFrameworkDetector = testFramework.getDetector();
testFrameworkDetector.setTestClasses(testExecutionSpec.getTestClassesDirs().getFiles());
testFrameworkDetector.setTestClasspath(classpath);
detector = new DefaultTestClassScanner(testClassFiles, testFrameworkDetector, processor);
} else {
detector = new DefaultTestClassScanner(testClassFiles, null, processor);
}
new TestMainAction(detector, processor, testResultProcessor, workerLeaseService, clock, testExecutionSpec.getPath(), "Gradle Test Run " + testExecutionSpec.getIdentityPath()).run();
}
Aggregations