Перейти к содержимому

Практикум по тест-дизайну 2.0
онлайн, начало 29 ноября
Тестирование REST API
онлайн, начало 18 ноября
Автоматизатор мобильных приложений
онлайн, начало 27 ноября
Selenium WebDriver: полное руководство
онлайн, начало 15 ноября

Catchermax

Регистрация: 27 авг 2017
Offline Активность: 24 окт 2019 10:51
-----

Мои темы

Запуск тестов через командную строку kotlin + gradle + cucumber

10 Октябрь 2019 - 09:32

Добрый день всем, у меня вопрос по запуску тестов из командной строки, стек kotlin + gradle + cucumber + testng + selenide. Руками могу запустить класс ранера, тесты отрабатывают и создается отчет. Как правильно создать в грэдле задачу для запуска тестов, и передавать туда параметры, такие как тэги cucumber и запуск в headless режиме?

Мой раннер выглядит так

 

 

import io.cucumber.testng.CucumberOptions

import io.cucumber.testng.AbstractTestNGCucumberTests

 

@CucumberOptions(

    features = arrayOf("classpath:features"),

    glue = arrayOf("steps"),

    plugin = arrayOf(

        "pretty",

        "json:target/cucumber-report.json",

        "html:target/cucumber-html",

        "io.qameta.allure.cucumber4jvm.AllureCucumber4Jvm"),

    tags = arrayOf("@Now")

)

class TestRunner : AbstractTestNGCucumberTests()

 
Грэдл у меня выглядит так

 

plugins {
id 'org.jetbrains.kotlin.jvm' version '1.3.50'
id "org.openapi.generator" version '4.1.2'
id 'io.qameta.allure' version '2.8.1'
}

group 'project'
version '1.0-SNAPSHOT'

targetCompatibility = 1.8
sourceCompatibility = 1.8

repositories {
mavenLocal()
mavenCentral()
jcenter()
}

ext {
selenideVersion = '5.3.1'
cucumberversion = '4.7.4'
}

dependencies {
testCompile 'io.cucumber:cucumber-java:4.7.4'
testCompile 'io.qameta.allure:allure-cucumber4-jvm:2.13.0'
testCompile group: 'io.qameta.allure', name: 'allure-selenide', version: '2.13.0'
testCompile 'junit:junit:4.12'
testCompile group: 'org.testng', name: 'testng', version: '7.0.0'
testCompile group: 'org.slf4j', name: 'slf4j-simple', version: '1.7.28'

implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
implementation "com.codeborne:selenide:${selenideVersion}"
implementation 'org.jtwig:jtwig-core:5.87.0.RELEASE'
implementation 'com.google.code.gson:gson:2.8.5'
implementation "io.gsonfire:gson-fire:1.8.3"
implementation 'com.squareup.okhttp3:okhttp:3.14.2'
implementation "com.squareup.okhttp3:logging-interceptor:3.14.2"
implementation 'io.swagger:swagger-annotations:1.5.22'
implementation "com.google.code.findbugs:jsr305:3.0.2"
implementation "org.apache.commons:commons-lang3:3.9"
implementation "org.threeten:threetenbp:1.3.8"
implementation "javax.annotation:jsr250-api:1.0"

testImplementation "io.cucumber:cucumber-java8:${cucumberversion}"
testImplementation "io.cucumber:cucumber-testng:${cucumberversion}"
}

openApiGenerate {
generatorName = "java"
inputSpec = "$projectDir/src/test/kotlin/helpers/api/apiSpec/api-v1.0.yaml".toString()
outputDir = "$projectDir".toString()
apiPackage = "kz.btsd.dm.smarttoi.autotestui.smarttoi-integration-tests.test.helpers.api.autogeneratorClient"
packageName = "kz.btsd.dm.smarttoi.autotestui.smarttoi-integration-tests.test.helpers.api.autogeneratorClient.controller"
invokerPackage = "kz.btsd.dm.smarttoi.autotestui.smarttoi-integration-tests.test.helpers.api.autogeneratorClient.invoker"
modelPackage = "kz.btsd.dm.smarttoi.autotestui.smarttoi-integration-tests.test.helpers.api.autogeneratorClient.dto"
validateSpec = true
configOptions = [
hideGenerationTimestamp: true,
dateLibrary : "java8"
]
}

compileKotlin {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
kotlinOptions {
freeCompilerArgs = ['-Xjsr305=strict']
jvmTarget = '11'
apiVersion = '1.3'
languageVersion = '1.3'
}
}

compileTestKotlin {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
kotlinOptions {
freeCompilerArgs = ['-Xjsr305=strict']
jvmTarget = '11'
apiVersion = '1.3'
languageVersion = '1.3'
}
tasks.openApiGenerate
}

allure {
autoconfigure = false
aspectjweaver = true
version = '2.8.1'
clean = true
}

gradle.startParameter.continueOnFailure = true

test {
systemProperties System.properties
useTestNG()
}

Во всех примерах запускают просто gradle test. Но у меня отрабатывает билд, но тесты не выполняются. Кто нибуть сталкивался с этим? Так же пробовал запустить создав файл xml 

 

 

 

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >

<suite name="Suite1" verbose="1" >
<test name="Regression1" >
<packages>
<package name="cucumber.base" />
</packages>
</test>
</suite>

И указав в гредле 
 

 

 

test {
systemProperties System.properties
useTestNG() {
options.suites 'src/test/kotlin/cucumber/base/runner.xml'
}
}

 

что тоже не заработало. Буду рад любой помощи


Яндекс.Метрика
Реклама на портале