API не запускаются при запуске команды gradle build - PullRequest
0 голосов
/ 01 октября 2018

Я работаю над автоматизацией API, где я использовал покой и Gradle для своей сборки.Когда я запускаю команду Gradle build в терминале, он не запускает мой API, который объявлен в основном классе.

мой build.gradle my выглядит следующим образом

  plugins {
    id 'java'
}

sourceSets {
    main.java.srcDir "src/main"
    main.resources.srcDir "src/main/resources"
}
group 'com.API_AUTO'
version '1.0-SNAPSHOT'

sourceCompatibility = 1.8

repositories {
    mavenCentral()
}
dependencies {
    compile 'io.rest-assured:rest-assured:3.0.0'
    //compile "io.rest-assured, name: rest-assured, version: 3.0.2"
    compile group: 'org.testng', name: 'testng', version: '6.10'
    compile group: 'org.apache.poi', name: 'poi-ooxml', version: '3.15'
    compile group: 'net.sourceforge.jexcelapi', name: 'jxl', version: '2.6.12'
    compile group: 'commons-lang', name: 'commons-lang', version: '2.6'
    compile group: 'com.googlecode.htmlcompressor', name: 'htmlcompressor', version: '1.5.2'
    compile group: 'commons-dbutils', name: 'commons-dbutils', version: '1.6'
    compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.8.6'
    compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.8.6'
    compile group: 'mysql', name: 'mysql-connector-java', version: '6.0.5'
    compile group: "com.github.fge", name: "json-schema-validator", version: "2.2.6"
    compile group: 'com.googlecode.json-simple', name: 'json-simple', version: '1.1.1'
    compile group: 'com.googlecode.json-simple', name: 'json-simple', version: '1.1'
    compile group: 'org.json', name: 'json', version: '20160810'
    compile group: 'org.uncommons', name: 'reportng', version: '1.1.4'
    compile group: 'com.google.code.guice-repository', name: 'guice-repository', version: '2.1.0'
    compile group: 'org.easytesting', name: 'fest-assert-core', version: '2.0M10'
    compile group: 'org.uncommons', name: 'reportng', version: '1.1.4'
    compile group: 'org.apache.commons', name: 'commons-csv', version: '1.5'
    compile group: 'org.apache.commons', name: 'commons-exec', version: '1.3'
    compile group: 'com.opencsv', name: 'opencsv', version: '4.1'
    testCompile 'junit:junit:4.12'
    compile group: 'javax.xml.bind', name: 'jaxb-api', version: '2.3.0'
    testCompile group: 'org.slf4j', name: 'slf4j-simple', version: '1.6.1'
    compile 'com.relevantcodes:extentreports:2.41.2'
    compile group: 'com.sun.mail', name: 'javax.mail', version: '1.6.0'
    compile 'javax.mail:javax.mail-api:1.6.2'
    compile 'com.sun.mail:smtp:1.6.2'
    compile group: 'javax.mail', name: 'javax.mail-api', version: '1.6.2'

}
/*jar {
    from('src/main/java') {
        include 'resource/extent-config.xml'
        include 'resource/config.properties'
    }
    from configurations.compile.collect { zipTree it }
    manifest.attributes "Main-Class": "com.xxxx.yyy.mainRunner"
}*/

configurations {
    cucumberRuntime {
        extendsFrom testRuntime
    }
}

task cucumber() {
    dependsOn assemble, compileTestJava
    doLast {
        javaexec {
            main = "com.xxxx.yyy.mainRunner"
            classpath = configurations.cucumberRuntime + sourceSets.main.output + sourceSets.test.output
        }
    }
}

Тогда мой основной класс выглядит следующим образом -

    import Api_Test_Scripts.RunnerSub;

public class mainRunner {
    public static void main(String[] args) throws InterruptedException {
        RunnerSub obj= new RunnerSub();
        obj.starttest();
        obj.runner();
        obj.endReport();
    }
}

Я ожидаю, что когда я выполню команду Gradle buildв терминале должно начаться выполнение API.

1 Ответ

0 голосов
/ 20 ноября 2018

Я нашел и исправил эту проблему.Существует два метода:

  1. В основном я пытался запустить API, или вы можете сказать классы, которые находятся в главной папке через build.gradle, где выполнить это действие.

У нас должны быть и тестовая папка, и структура основной папки, которые в основном имеют методы тестирования, которые вызывают классы главной папки с соответствующими кодами.

Я сделал это ниже, вуаля!он работал, так как мой gradle.build был запущен в соответствии с определенным в нем тестом.

Runner file which invokes the main

gradle.build Изменения файла-

test {
    reports {
        junitXml.enabled = true
        html.enabled = false
        reports.junitXml.destination = file("test-output/reports/")
    }
    useTestNG()
            {
                useDefaultListeners = true
                options.suites("src/test/java/testApi_Test_Scripts/smsApiAutomationSuite.xml")
                options.listeners << 'com.kaleyra.smsApi.qa.framework.listener.CustomListener'
                //options.listeners << 'com.kaleyra.smsApi.qa.framework.listener.EmailListener'
                //options.listeners << 'org.uncommons.reportng.HTMLReporter'
                options.listeners << 'org.uncommons.reportng.JUnitXMLReporter'
                systemProperty 'org.uncommons.reportng.title', 'sms_api_automation_results'

            }
    testLogging.events "passed", "skipped", "failed"
    testLogging.showStandardStreams = true
    testLogging.exceptionFormat = "full"

Добавьте это в свой build.gradle-

применить плагин: 'application' mainClassName = "com.XXXX.smsApi.qa.framework.mainRunner"

И альт!

Если вы спросите меня, какой вариант лучше, чем я выберу первый.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...