У меня есть проект Android (в Windows), где я пытаюсь запустить cucumber-jvm как неинструментированный «модульный тест».Т.е. выполнять функции Cucumber при запуске gradlew test
.
Вот соответствующие биты моего приложения build.gradle
:
android {
...
testOptions {
unitTests.all {
javaexec {
main = "cucumber.api.cli.Main"
classpath = getClasspath()
args = ['--plugin', 'pretty', '--glue', 'gradle.cucumber', 'src/test/java/cucumber/assets']
}
}
}
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support:appcompat-v7:28.0.0-rc02'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
testImplementation 'junit:junit:4.12'
testImplementation 'io.cucumber:cucumber-java:3.0.2'
testImplementation 'io.cucumber:cucumber-junit:3.0.2'
}
Когда я запускаю gradlew test --info
в командной строке Iполучить следующую ошибку:
Starting process 'command 'C:\Program Files\Java\jdk1.8.0_162\bin\java.exe''. Working directory: C:\dev\urig\android-cucumber\app Command: C:\Program Files\Java\jdk1.8.0_162\bin\java.exe -Dfile.encoding=windows-1252 -Duser.country=US -Duser.language=en -Duser.variant cucumber.api.cli.Main --plugin pretty --glue gradle.cucumber src/test/java/cucumber/assets
Successfully started process 'command 'C:\Program Files\Java\jdk1.8.0_162\bin\java.exe''
Error: Could not find or load main class cucumber.api.cli.Main
Мне кажется, что команда не содержит пути к классам, и мой вопрос - Почему?
PS - я подтвердил, чтово время вызова javaexec
вызов getClasspath()
действительно содержит все зависимости с этим небольшим битом Groovy: println getClasspath().any { println it }
PPS - я знаю предполагаемое использованиеcucumber-jvm предназначен для инструментальных тестов с использованием cucumber-android .У меня есть конкретный вариант использования для запуска Cucumber в качестве «локального модульного теста» (термины Android, а не мой), так что приведенное выше не очень мне помогает.