in src/main/java/org/jenkinsci/plugins/awsdevicefarm/AWSDeviceFarmRecorder.java [817:1127]
private ScheduleRunTest getScheduleRunTest(EnvVars env, AWSDeviceFarm adf, Project project, PrintStream log) throws InterruptedException, IOException, AWSDeviceFarmException {
ScheduleRunTest testToSchedule = null;
TestType testType = stringToTestType(testToRun);
switch (testType) {
case BUILTIN_FUZZ: {
Map<String, String> parameters = new HashMap<String, String>();
if (eventCount != null && !eventCount.isEmpty()) {
parameters.put("event_count", eventCount);
}
if (eventThrottle != null && !eventThrottle.isEmpty()) {
parameters.put("throttle", eventThrottle);
}
if (seed != null && !seed.isEmpty()) {
parameters.put("seed", seed);
}
testToSchedule = new ScheduleRunTest()
.withType(testType)
.withParameters(parameters);
break;
}
case BUILTIN_EXPLORER: {
Map<String, String> parameters = new HashMap<String, String>();
if (username != null && !username.isEmpty()) {
parameters.put("username", username);
}
if (password != null && !password.isEmpty()) {
parameters.put("password", password);
}
testToSchedule = new ScheduleRunTest()
.withType(testType)
.withParameters(parameters);
break;
}
case APPIUM_JAVA_JUNIT: {
AppiumJavaJUnitTest test = new AppiumJavaJUnitTest.Builder()
.withTests(env.expand(appiumJavaJUnitTest))
.build();
Upload upload = adf.uploadTest(project, test);
testToSchedule = new ScheduleRunTest()
.withType(testType)
.withTestPackageArn(upload.getArn());
testToSchedule.addParametersEntry("appium_version", appiumVersionJunit);
break;
}
case APPIUM_JAVA_TESTNG: {
AppiumJavaTestNGTest test = new AppiumJavaTestNGTest.Builder()
.withTests(env.expand(appiumJavaTestNGTest))
.build();
Upload upload = adf.uploadTest(project, test);
testToSchedule = new ScheduleRunTest()
.withType(testType)
.withTestPackageArn(upload.getArn());
testToSchedule.addParametersEntry("appium_version", appiumVersionTestng);
break;
}
case APPIUM_PYTHON: {
AppiumPythonTest test = new AppiumPythonTest.Builder()
.withTests(env.expand(appiumPythonTest))
.build();
Upload upload = adf.uploadTest(project, test);
testToSchedule = new ScheduleRunTest()
.withType(testType)
.withTestPackageArn(upload.getArn());
testToSchedule.addParametersEntry("appium_version", appiumVersionPython);
break;
}
case APPIUM_RUBY: {
AppiumRubyTest test = new AppiumRubyTest.Builder()
.withTests(env.expand(appiumRubyTest))
.build();
Upload upload = adf.uploadTest(project, test);
testToSchedule = new ScheduleRunTest()
.withType(testType)
.withTestPackageArn(upload.getArn());
break;
}
case APPIUM_NODE: {
AppiumNodeTest test = new AppiumNodeTest.Builder()
.withTests(env.expand(appiumNodeTest))
.build();
Upload upload = adf.uploadTest(project, test);
testToSchedule = new ScheduleRunTest()
.withType(testType)
.withTestPackageArn(upload.getArn());
break;
}
case APPIUM_WEB_JAVA_JUNIT: {
AppiumWebJavaJUnitTest test = new AppiumWebJavaJUnitTest.Builder()
.withTests(env.expand(appiumJavaJUnitTest))
.build();
Upload upload = adf.uploadTest(project, test);
testToSchedule = new ScheduleRunTest()
.withType(testType)
.withTestPackageArn(upload.getArn());
testToSchedule.addParametersEntry("appium_version", appiumVersionJunit);
break;
}
case APPIUM_WEB_JAVA_TESTNG: {
AppiumWebJavaTestNGTest test = new AppiumWebJavaTestNGTest.Builder()
.withTests(env.expand(appiumJavaTestNGTest))
.build();
Upload upload = adf.uploadTest(project, test);
testToSchedule = new ScheduleRunTest()
.withType(testType)
.withTestPackageArn(upload.getArn());
testToSchedule.addParametersEntry("appium_version", appiumVersionTestng);
break;
}
case APPIUM_WEB_PYTHON: {
AppiumWebPythonTest test = new AppiumWebPythonTest.Builder()
.withTests(env.expand(appiumPythonTest))
.build();
Upload upload = adf.uploadTest(project, test);
testToSchedule = new ScheduleRunTest()
.withType(testType)
.withTestPackageArn(upload.getArn());
testToSchedule.addParametersEntry("appium_version", appiumVersionPython);
break;
}
case APPIUM_WEB_RUBY: {
AppiumWebRubyTest test = new AppiumWebRubyTest.Builder()
.withTests(env.expand(appiumRubyTest))
.build();
Upload upload = adf.uploadTest(project, test);
testToSchedule = new ScheduleRunTest()
.withType(testType)
.withTestPackageArn(upload.getArn());
break;
}
case APPIUM_WEB_NODE: {
AppiumWebNodeTest test = new AppiumWebNodeTest.Builder()
.withTests(env.expand(appiumNodeTest))
.build();
Upload upload = adf.uploadTest(project, test);
testToSchedule = new ScheduleRunTest()
.withType(testType)
.withTestPackageArn(upload.getArn());
break;
}
case CALABASH: {
CalabashTest test = new CalabashTest.Builder()
.withFeatures(env.expand(calabashFeatures))
.withTags(env.expand(calabashTags))
.withProfile(env.expand(calabashProfile))
.build();
Upload upload = adf.uploadTest(project, test);
Map<String, String> parameters = new HashMap<String, String>();
if (test.getTags() != null && !test.getTags().isEmpty()) {
parameters.put("tags", test.getTags());
}
if (test.getProfile() != null && !test.getProfile().isEmpty()) {
parameters.put("profile", test.getProfile());
}
testToSchedule = new ScheduleRunTest()
.withType(testType)
.withTestPackageArn(upload.getArn())
.withParameters(parameters);
break;
}
case INSTRUMENTATION: {
InstrumentationTest test = new InstrumentationTest.Builder()
.withArtifact(env.expand(junitArtifact))
.withFilter(env.expand(junitFilter))
.build();
Upload upload = adf.uploadTest(project, test);
testToSchedule = new ScheduleRunTest()
.withType(testType)
.withTestPackageArn(upload.getArn())
.withParameters(new HashMap<String, String>())
.withFilter(test.getFilter());
break;
}
case UIAUTOMATOR: {
UIAutomatorTest test = new UIAutomatorTest.Builder()
.withTests(env.expand(uiautomatorArtifact))
.withFilter(env.expand(uiautomatorFilter))
.build();
Upload upload = adf.uploadTest(project, test);
testToSchedule = new ScheduleRunTest()
.withType(testType)
.withTestPackageArn(upload.getArn())
.withParameters(new HashMap<String, String>())
.withFilter(test.getFilter());
break;
}
case UIAUTOMATION: {
UIAutomationTest test = new UIAutomationTest.Builder()
.withTests(uiautomationArtifact)
.build();
Upload upload = adf.uploadTest(project, test);
testToSchedule = new ScheduleRunTest()
.withType(testType)
.withTestPackageArn(upload.getArn());
break;
}
case XCTEST: {
XCTestTest test = new XCTestTest.Builder()
.withTests(xctestArtifact)
.withFilter(env.expand(xctestFilter))
.build();
Upload upload = adf.uploadTest(project, test);
testToSchedule = new ScheduleRunTest()
.withType(testType)
.withFilter(test.getFilter())
.withTestPackageArn(upload.getArn());
break;
}
case XCTEST_UI: {
XCTestUITest test = new XCTestUITest.Builder()
.withTests(xctestUiArtifact)
.withFilter(env.expand(xctestUiFilter))
.build();
Upload upload = adf.uploadTest(project, test);
testToSchedule = new ScheduleRunTest()
.withType(testType)
.withFilter(test.getFilter())
.withTestPackageArn(upload.getArn());
break;
}
default: {
writeToLog(log, String.format("Cannot schedule unknown test type '%s'", testType));
}
}
if (StringUtils.isNotBlank(environmentToRun)) {
switch (environmentToRun) {
case STANDARD_ENVIRONMENT: {
break;
}
case CUSTOM_ENVIRONMENT: {
Upload testSpec = adf.getTestSpec(project, testSpecName);
testToSchedule.setTestSpecArn(testSpec.getArn());
break;
}
}
}
return testToSchedule;
}