Search in sources :

Example 6 with Test

use of org.gradle.api.tasks.testing.Test in project gradle by gradle.

the class JvmTestSuiteBasePlugin method createJvmTestSuiteTasks.

@BinaryTasks
void createJvmTestSuiteTasks(ModelMap<Task> tasks, final JvmTestSuiteBinarySpecInternal binary, @Path("buildDir") final File buildDir) {
    final JvmAssembly jvmAssembly = ((WithJvmAssembly) binary).getAssembly();
    tasks.create(testTaskNameFor(binary), Test.class, new Action<Test>() {

        @Override
        public void execute(final Test test) {
            test.setGroup(LifecycleBasePlugin.VERIFICATION_GROUP);
            test.setDescription(String.format("Runs %s.", WordUtils.uncapitalize(binary.getDisplayName())));
            test.dependsOn(jvmAssembly);
            test.setTestClassesDirs(new SimpleFileCollection(binary.getClassesDir()));
            test.setClasspath(binary.getRuntimeClasspath());
            configureReports(binary, test);
        }

        private void configureReports(JvmTestSuiteBinarySpecInternal binary, Test test) {
            // todo: improve configuration of reports
            TestTaskReports reports = test.getReports();
            File reportsDirectory = new File(buildDir, "reports");
            File reportsOutputDirectory = binary.getNamingScheme().getOutputDirectory(reportsDirectory);
            File htmlDir = new File(reportsOutputDirectory, "tests");
            File xmlDir = new File(buildDir, "test-results");
            File xmlDirOutputDirectory = binary.getNamingScheme().getOutputDirectory(xmlDir);
            File binDir = new File(xmlDirOutputDirectory, "binary");
            reports.getHtml().setDestination(htmlDir);
            reports.getJunitXml().setDestination(xmlDirOutputDirectory);
            test.setBinResultsDir(binDir);
        }
    });
}
Also used : TestTaskReports(org.gradle.api.tasks.testing.TestTaskReports) WithJvmAssembly(org.gradle.jvm.internal.WithJvmAssembly) Test(org.gradle.api.tasks.testing.Test) WithJvmAssembly(org.gradle.jvm.internal.WithJvmAssembly) JvmAssembly(org.gradle.jvm.internal.JvmAssembly) SimpleFileCollection(org.gradle.api.internal.file.collections.SimpleFileCollection) JvmTestSuiteBinarySpecInternal(org.gradle.jvm.test.internal.JvmTestSuiteBinarySpecInternal) File(java.io.File) BinaryTasks(org.gradle.platform.base.BinaryTasks)

Example 7 with Test

use of org.gradle.api.tasks.testing.Test in project gradle by gradle.

the class JavaPlugin method configureTest.

private void configureTest(final Project project, final JavaPluginConvention pluginConvention) {
    project.getTasks().withType(Test.class, new Action<Test>() {

        public void execute(final Test test) {
            test.getConventionMapping().map("testClassesDirs", new Callable<Object>() {

                public Object call() throws Exception {
                    return pluginConvention.getSourceSets().getByName(SourceSet.TEST_SOURCE_SET_NAME).getOutput().getClassesDirs();
                }
            });
            test.getConventionMapping().map("classpath", new Callable<Object>() {

                public Object call() throws Exception {
                    return pluginConvention.getSourceSets().getByName(SourceSet.TEST_SOURCE_SET_NAME).getRuntimeClasspath();
                }
            });
        }
    });
    Test test = project.getTasks().create(TEST_TASK_NAME, Test.class);
    project.getTasks().getByName(JavaBasePlugin.CHECK_TASK_NAME).dependsOn(test);
    test.setDescription("Runs the unit tests.");
    test.setGroup(JavaBasePlugin.VERIFICATION_GROUP);
}
Also used : Test(org.gradle.api.tasks.testing.Test) Callable(java.util.concurrent.Callable)

Example 8 with Test

use of org.gradle.api.tasks.testing.Test in project gradle by gradle.

the class ClientForwardingTestOperationListener method started.

@Override
public void started(BuildOperationInternal buildOperation, OperationStartEvent startEvent) {
    if (!(buildOperation.getOperationDescriptor() instanceof TaskOperationDescriptor)) {
        return;
    }
    TaskInternal task = ((TaskOperationDescriptor) buildOperation.getOperationDescriptor()).getTask();
    if (!(task instanceof Test)) {
        return;
    }
    runningTasks.put(buildOperation.getId(), task.getPath());
}
Also used : Test(org.gradle.api.tasks.testing.Test) TaskInternal(org.gradle.api.internal.TaskInternal) TaskOperationDescriptor(org.gradle.api.execution.internal.TaskOperationDescriptor)

Example 9 with Test

use of org.gradle.api.tasks.testing.Test in project gradle by gradle.

the class TestExecutionBuildConfigurationAction method configureBuildForInternalJvmTestRequest.

private List<Test> configureBuildForInternalJvmTestRequest(GradleInternal gradle, TestExecutionRequestAction testExecutionRequest) {
    final Collection<InternalJvmTestRequest> internalJvmTestRequests = testExecutionRequest.getInternalJvmTestRequests();
    if (internalJvmTestRequests.isEmpty()) {
        return Collections.emptyList();
    }
    List<Test> tasksToExecute = new ArrayList<Test>();
    final Set<Project> allprojects = gradle.getRootProject().getAllprojects();
    for (Project project : allprojects) {
        final Collection<Test> testTasks = project.getTasks().withType(Test.class);
        for (Test testTask : testTasks) {
            for (InternalJvmTestRequest jvmTestRequest : internalJvmTestRequests) {
                final TestFilter filter = testTask.getFilter();
                filter.includeTest(jvmTestRequest.getClassName(), jvmTestRequest.getMethodName());
            }
        }
        tasksToExecute.addAll(testTasks);
    }
    return tasksToExecute;
}
Also used : Project(org.gradle.api.Project) InternalJvmTestRequest(org.gradle.tooling.internal.protocol.test.InternalJvmTestRequest) Test(org.gradle.api.tasks.testing.Test) TestFilter(org.gradle.api.tasks.testing.TestFilter)

Example 10 with Test

use of org.gradle.api.tasks.testing.Test in project gradle by gradle.

the class TestExecutionBuildConfigurationAction method configureBuildForTestDescriptors.

private List<Test> configureBuildForTestDescriptors(GradleInternal gradle, TestExecutionRequestAction testExecutionRequest) {
    final Collection<InternalTestDescriptor> testDescriptors = testExecutionRequest.getTestExecutionDescriptors();
    final List<String> testTaskPaths = org.gradle.util.CollectionUtils.collect(testDescriptors, new Transformer<String, InternalTestDescriptor>() {

        @Override
        public String transform(InternalTestDescriptor testDescriptor) {
            return ((DefaultTestDescriptor) testDescriptor).getTaskPath();
        }
    });
    List<Test> testTasksToRun = new ArrayList<Test>();
    for (final String testTaskPath : testTaskPaths) {
        final Task task = gradle.getRootProject().getTasks().findByPath(testTaskPath);
        if (task == null) {
            throw new TestExecutionException(String.format("Requested test task with path '%s' cannot be found.", testTaskPath));
        } else if (!(task instanceof Test)) {
            throw new TestExecutionException(String.format("Task '%s' of type '%s' not supported for executing tests via TestLauncher API.", testTaskPath, task.getClass().getName()));
        } else {
            Test testTask = (Test) task;
            for (InternalTestDescriptor testDescriptor : testDescriptors) {
                DefaultTestDescriptor defaultTestDescriptor = (DefaultTestDescriptor) testDescriptor;
                if (defaultTestDescriptor.getTaskPath().equals(testTaskPath)) {
                    String className = defaultTestDescriptor.getClassName();
                    String methodName = defaultTestDescriptor.getMethodName();
                    if (className == null && methodName == null) {
                        testTask.getFilter().includeTestsMatching("*");
                    } else {
                        testTask.getFilter().includeTest(className, methodName);
                    }
                }
            }
            testTasksToRun.add(testTask);
        }
    }
    return testTasksToRun;
}
Also used : Task(org.gradle.api.Task) TestExecutionException(org.gradle.api.tasks.testing.TestExecutionException) Test(org.gradle.api.tasks.testing.Test) DefaultTestDescriptor(org.gradle.tooling.internal.provider.events.DefaultTestDescriptor) InternalTestDescriptor(org.gradle.tooling.internal.protocol.events.InternalTestDescriptor)

Aggregations

Test (org.gradle.api.tasks.testing.Test)11 File (java.io.File)4 Task (org.gradle.api.Task)4 Configuration (org.gradle.api.artifacts.Configuration)2 SourceSet (org.gradle.api.tasks.SourceSet)2 SourceSetContainer (org.gradle.api.tasks.SourceSetContainer)2 JavaCompile (org.gradle.api.tasks.compile.JavaCompile)2 SpotlessExtension (com.diffplug.gradle.spotless.SpotlessExtension)1 SpotlessPlugin (com.diffplug.gradle.spotless.SpotlessPlugin)1 SpotlessTask (com.diffplug.gradle.spotless.SpotlessTask)1 VersionsPlugin (com.github.benmanes.gradle.versions.VersionsPlugin)1 Splitter (com.google.common.base.Splitter)1 ImmutableList (com.google.common.collect.ImmutableList)1 ImmutableList.toImmutableList (com.google.common.collect.ImmutableList.toImmutableList)1 ImmutableMap (com.google.common.collect.ImmutableMap)1 ByteStreams (com.google.common.io.ByteStreams)1 Resources (com.google.common.io.Resources)1 ProtobufPlugin (com.google.protobuf.gradle.ProtobufPlugin)1 ProtobufSourceDirectorySet (com.google.protobuf.gradle.ProtobufSourceDirectorySet)1 PythonEnvsExtension (com.jetbrains.python.envs.PythonEnvsExtension)1