Как запустить тесты cucumber-jvm с помощью Gradle - PullRequest
6 голосов
/ 15 февраля 2012

Я пытаюсь запустить проект, используя новую систему Cucumber-jvm и Gradle в качестве моей системы сборки.

Я использовал пример кода Java в проекте GitHub cucumber-jvm (https://github.com/cucumber/cucumber-jvm).

Мой проект настроен в IntelliJ, и среда IDE может запустить тест.

Однако Gradle не находит никаких тестов для выполнения. Я знаю это, потому что я сломал тест, и Gradle сказалничего. Он также ничего не сказал, когда работал.

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

import cucumber.junit.Cucumber;
import cucumber.junit.Feature;
import org.junit.runner.RunWith;

@RunWith(Cucumber.class)
@Feature(value = "CarMaintenance.feature")
public class FuelCarTest {
}

Я новичок и в огурцах, и в Gradle !!

Ответы [ 2 ]

4 голосов
/ 23 декабря 2013

Я помню, что у меня были проблемы с Грэдлом и Огуреком из-за джунит бегуна. В конце концов я сдался и создал задачу Gradle, используя бегун командной строки.

task executeFeatures(type: JavaExec, dependsOn: testClasses) {
    main = "cucumber.cli.Main"
    classpath += files(sourceSets.test.runtimeClasspath, file(webAppDir.path + '/WEB-INF/classes'))
    args += [ '-f', 'html:build/reports/cucumber', '-g', 'uk.co.filmtrader', 'src/test/resources/features']
}

-f Папка для вывода html-отчета

-g Название упаковки для клея / пошаговый код

src/test/resources/features Где файлы объектов

Со следующими зависимостями

testCompile 'org.mockito:mockito-all:1.9.5',
            'junit:junit:4.11',
            'org.hamcrest:hamcrest-library:1.3',
            'info.cukes:cucumber-java:1.0.14',
            'info.cukes:cucumber-junit:1.0.14',
            'info.cukes:cucumber-spring:1.0.14'

Обновление до версии 4.2.5

Со временем произошли некоторые незначительные изменения:

  • имя пакета cli изменено на cucumber.api.cli.Main
  • Флаг -f, похоже, больше не работает и вызывает ошибку

Итак, в моем build.gradle появилось следующее определение задачи:

task executeFeatures(type: JavaExec, dependsOn: testClasses) {
    main = "cucumber.api.cli.Main"
    classpath += files(sourceSets.test.runtimeClasspath)
    args += [ '-g', 'uk.co.filmtrader', 'src/test/resources/features'] 
}
1 голос
/ 27 ноября 2018

Другим способом может быть создание задачи и включение класса бегуна для теста

build.gradle-
task RunCukesTest(type: Test) << {
include "RunCukesTest.class"
}

testCompile 'io.cucumber:cucumber-java:4.2.0'
testCompile 'io.cucumber:cucumber-junit:4.2.0'


your class - 
@RunWith(Cucumber.class)
@CucumberOptions(dryRun = false, strict = true, features = "src/test/resources", glue 
= "com.gradle.featuretests",monochrome = true)
public class RunCukesTest {
}

просто нажмите команду: - gradle RunCukesTest

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