Я пытаюсь начать использовать Cucumber с Android Studio, и после проверки большого количества документации и связанных постов я не избавляюсь от ошибки, которая сводит меня с ума. Вот это:
java.lang.IllegalArgumentException: path must exist: /src/androidTest/java/com/example/tetris/cucumber
at io.cucumber.core.resource.PathScanner.findResourcesForPath(PathScanner.java:42)
at io.cucumber.core.resource.PathScanner.findResourcesFo ...
Это мое дерево каталогов:
Это мой build.gradle:
apply plugin: 'com.android.application'
android {
compileSdkVersion 29
buildToolsVersion "29.0.2"
defaultConfig {
applicationId "com.example.tetris"
minSdkVersion 15
targetSdkVersion 29
versionCode 1
versionName "1.2"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
configurations {
cucumberRuntime {
extendsFrom testImplementation
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'com.google.android.material:material:1.1.0'
testImplementation 'junit:junit:4.13'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
androidTestImplementation group: 'io.cucumber', name: 'cucumber-java', version: '5.2.0'
androidTestImplementation group: 'io.cucumber', name: 'cucumber-junit', version: '5.5.0'
androidTestImplementation group: 'io.cucumber', name: 'cucumber-android', version: '4.2.5'
androidTestImplementation group: 'io.cucumber', name: 'cucumber-picocontainer', version: '5.5.0'
implementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.7'
}
Это мой бегун с огурцами:
package com.example.tetris.cucumber;
import io.cucumber.junit.Cucumber;
import io.cucumber.junit.CucumberOptions;
import org.junit.runner.RunWith;
@RunWith(Cucumber.class)
@CucumberOptions( features = "src/androidTest/java/com/example/tetris/cucumber" )
public class CucumberRunner {
}
Это моя особенность HelloWorld:
Feature: HelloWorld
Scenario: HelloToTheWorld
Given Nothing
When NothingAgain
Then Hello
И здесь я хотел написать шаги HelloWorld:
package com.example.tetris.cucumber;
import org.junit.Assert;
import io.cucumber.java.en.Given;
import io.cucumber.java.en.Then;
import io.cucumber.java.en.When;
public class CucumberHello {
@Given("^Nothing$")
public void nothing() {
}
@When("^NothingAgain$")
public void nothingagain() {
}
@Then("^Hello$")
public void hello() {
Assert.assertTrue(true);
}
}
Просто чтобы сообщить, что если я удалю @CucumberOptions, ошибка изменится на «Нет теста найдены». Может кто-нибудь помочь мне?
Примечание. Игнорируйте красные цвета в файлах, они Git а не ошибки компиляции.
Всем хорошего дня.