Search in sources :

Example 1 with RunPreviousFailedFirstTestClassProcessor

use of org.gradle.api.internal.tasks.testing.processors.RunPreviousFailedFirstTestClassProcessor 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();
}
Also used : WorkerTestClassProcessorFactory(org.gradle.api.internal.tasks.testing.WorkerTestClassProcessorFactory) RunPreviousFailedFirstTestClassProcessor(org.gradle.api.internal.tasks.testing.processors.RunPreviousFailedFirstTestClassProcessor) ActorFactory(org.gradle.internal.actor.ActorFactory) WorkerProcessFactory(org.gradle.process.internal.worker.WorkerProcessFactory) Factory(org.gradle.internal.Factory) WorkerTestClassProcessorFactory(org.gradle.api.internal.tasks.testing.WorkerTestClassProcessorFactory) TestMainAction(org.gradle.api.internal.tasks.testing.processors.TestMainAction) ForkingTestClassProcessor(org.gradle.api.internal.tasks.testing.worker.ForkingTestClassProcessor) MaxNParallelTestClassProcessor(org.gradle.api.internal.tasks.testing.processors.MaxNParallelTestClassProcessor) TestClassProcessor(org.gradle.api.internal.tasks.testing.TestClassProcessor) RunPreviousFailedFirstTestClassProcessor(org.gradle.api.internal.tasks.testing.processors.RunPreviousFailedFirstTestClassProcessor) RestartEveryNTestClassProcessor(org.gradle.api.internal.tasks.testing.processors.RestartEveryNTestClassProcessor) PatternMatchTestClassProcessor(org.gradle.api.internal.tasks.testing.processors.PatternMatchTestClassProcessor) RestartEveryNTestClassProcessor(org.gradle.api.internal.tasks.testing.processors.RestartEveryNTestClassProcessor) PatternMatchTestClassProcessor(org.gradle.api.internal.tasks.testing.processors.PatternMatchTestClassProcessor) TestFramework(org.gradle.api.internal.tasks.testing.TestFramework) MaxNParallelTestClassProcessor(org.gradle.api.internal.tasks.testing.processors.MaxNParallelTestClassProcessor) ForkingTestClassProcessor(org.gradle.api.internal.tasks.testing.worker.ForkingTestClassProcessor) FileTree(org.gradle.api.file.FileTree) File(java.io.File)

Aggregations

File (java.io.File)1 FileTree (org.gradle.api.file.FileTree)1 TestClassProcessor (org.gradle.api.internal.tasks.testing.TestClassProcessor)1 TestFramework (org.gradle.api.internal.tasks.testing.TestFramework)1 WorkerTestClassProcessorFactory (org.gradle.api.internal.tasks.testing.WorkerTestClassProcessorFactory)1 MaxNParallelTestClassProcessor (org.gradle.api.internal.tasks.testing.processors.MaxNParallelTestClassProcessor)1 PatternMatchTestClassProcessor (org.gradle.api.internal.tasks.testing.processors.PatternMatchTestClassProcessor)1 RestartEveryNTestClassProcessor (org.gradle.api.internal.tasks.testing.processors.RestartEveryNTestClassProcessor)1 RunPreviousFailedFirstTestClassProcessor (org.gradle.api.internal.tasks.testing.processors.RunPreviousFailedFirstTestClassProcessor)1 TestMainAction (org.gradle.api.internal.tasks.testing.processors.TestMainAction)1 ForkingTestClassProcessor (org.gradle.api.internal.tasks.testing.worker.ForkingTestClassProcessor)1 Factory (org.gradle.internal.Factory)1 ActorFactory (org.gradle.internal.actor.ActorFactory)1 WorkerProcessFactory (org.gradle.process.internal.worker.WorkerProcessFactory)1