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);
}
});
}
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);
}
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());
}
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;
}
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;
}
Aggregations