Java-проект Запустите Cucumber IT в другом модулеJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Java-проект Запустите Cucumber IT в другом модуле

Сообщение Anonymous »

У меня есть такая структура проекта Java, Spring:

Код: Выделить всё

├── src
│   ├── integrationTest
│   │   ├── java
│   │   │   ├── foo.bar.cuke.project
│   │   │   │   ├── controller
│   │   │   │   │   ├── TestControllerIT.java
│   │   │   │   ├── CucumberSpringConfiguration.java
│   │   │   │   ├── CucumberTest.java
│   │   ├── resources
│   │   │   ├── features
│   │   │   │   ├── test.feature
│   │   │   ├── junit-platform.properties
│   ├── main
│   ├── test
Вот как выглядят различные файлы:

Код: Выделить всё

CucumberSpringConfiguration.java:
@SpringBootTest(webEnvironment=SpringBootTest.WebEnvironment.RANDOM_PORT)
@CucumberContextConfiguration
public class CucumberSpringConfiguration {
@Autowired
protected TestRestTemplate testRestTemplate;
}

Код: Выделить всё

CucumberTest.java:
@Suite
@SelectClasspathResource("src/integrationTest/resources/features")
public class CucumberTest {
}

Код: Выделить всё

TestControllerIT.java:
public class TestControllerIT extends CucumberSpringConfiguration {
@Given("random given text")
public void testGiven() {
System.out.println("test");
}
}

Код: Выделить всё

test.feature:
Feature: This is a test feature

Scenario: Test scenario
Given random given text
When a condition is met
Then do something

Код: Выделить всё

junit-platform.properties:
cucumber.plugin=junit:target/cucumber-reports/cucumber.xml
cucumber.glue=foo.bar.cuke.project.controller
Я использую IntelliJ с плагинами огурца и корнишона. Я не знаю точно, какой файл запустить, но когда я запускаю файл функции, я получаю следующую ошибку:

Код: Выделить всё

Suppressed: java.lang.SecurityException: class "org.bouncycastle.jcajce.provider.asymmetric.edec.KeyFactorySpi$Ed448"'s signer information does not match signer information of other classes in the same package
at java.base/java.lang.ClassLoader.checkCerts(ClassLoader.java:1156)
at java.base/java.lang.ClassLoader.preDefineClass(ClassLoader.java:911)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1020)
at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:800)
at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:698)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:621)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:579)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
Когда я запускаю класс CucumberTest, я получаю следующую ошибку:

Код: Выделить всё

> Task :integrationTest
0 passing (1.9s)
> Task :integrationTest FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':integrationTest'.
> No tests found for given includes: [foo.bar.cuke.project.CucumberTest](--tests filter)
В чем проблема с моей настройкой? Почему огурец не может найти мой ИТ-файл и запустить тест?
Мой технический стек:
  • Java 11
  • Spring framework 5.3
  • JUnit 5
  • Cucumber 7.18
  • Gradle 7.3
Я безуспешно пытался добавить следующее в свой build.gradle:

Код: Выделить всё

testSets {
integrationTest
}

test {
systemProperty 'server.ssl.enabled', false
}
Также попробовал изменить структуру каталогов, чтобы ИТ-контроллер находился в каталоге под названием StepDefintions.

Подробнее здесь: https://stackoverflow.com/questions/790 ... ent-module
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»