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

Подготовка к сертификации ISTQB FL
онлайн, начало 10 августа
Тестирование REST API
онлайн, начало 10 августа
Программирование на Python для тестировщиков
онлайн, начало 14 августа
Тестирование без требований
онлайн, начало 17 августа
Фотография

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


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 3

#1 Catchermax

Catchermax

    Новый участник

  • Members
  • Pip
  • 30 сообщений
  • ФИО:Максим

Отправлено 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'
}
}

 

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


  • 0

#2 Catchermax

Catchermax

    Новый участник

  • Members
  • Pip
  • 30 сообщений
  • ФИО:Максим

Отправлено 11 октября 2019 - 03:58

Нашел пример который поможет воспроизвести проблему.
1) Клонировать/скачать проект https://github.com/s...Testng-Template

2) Запустить в терминале ./gradlew test

Этот пример в точности повторяет мою проблему, при этом что интересно если запустить через мавен "mvn test", то отрабатывает как надо.


  • 0

#3 BabyRoot

BabyRoot

    Специалист

  • Members
  • PipPipPipPipPip
  • 766 сообщений


Отправлено 11 октября 2019 - 07:29

Раз вы используете кукумбер, то и запускать его надо в первую очередь.

https://cucumber.io/...ls/java/#gradle - 5 пункта у вас не вижу.

И запуск на выполнение gradle cucumber

Ну и не говоря о том что надо начать с https://cucumber.io/...inute-tutorial/


  • 0

#4 Catchermax

Catchermax

    Новый участник

  • Members
  • Pip
  • 30 сообщений
  • ФИО:Максим

Отправлено 11 октября 2019 - 07:48

Решение найдено подсказали правильную конфигурацию для test

 

 

test {

    useTestNG()

    systemProperties System.properties

    dependsOn 'cleanTest'

    scanForTestClasses = false

}


  • 0


Selenium 2.0: стартовый уровень
онлайн
Программирование на Java для тестировщиков
онлайн
Автоматизация функционального тестирования
онлайн
Selenium WebDriver: полное руководство
онлайн



Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных

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