Запуск различных наборов тестов Junit5 Cucumber с повторяющимися определениями шагов.JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Запуск различных наборов тестов Junit5 Cucumber с повторяющимися определениями шагов.

Сообщение Anonymous »

У меня есть два набора тестов огурца для платформы Junit5, специфичных для конкретной предметной области.
О:

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

@Suite
@IncludeEngines("cucumber")
@SelectPackages("de.bla.blubb1")
@SelectClasspathResource("de/bla/blubb1")
@ConfigurationParameter(key = GLUE_PROPERTY_NAME, value = "de.bla.blubb1")
@ConfigurationParameter(key = PLUGIN_PUBLISH_QUIET_PROPERTY_NAME, value = "true")
@ConfigurationParameter(key = PLUGIN_PROPERTY_NAME, value = "pretty,json:target/blubb1cucumber.json")
public class RunBlubb1CucumberTest
{
// nichts zu tun
}
и Б:

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

@Suite
@IncludeEngines("cucumber")
@SelectPackages("de.bla.blubb2")
@SelectClasspathResource("de/bla/blubb2")
@ConfigurationParameter(key = GLUE_PROPERTY_NAME, value = "de.bla.blubb2")
@ConfigurationParameter(key = PLUGIN_PUBLISH_QUIET_PROPERTY_NAME, value = "true")
@ConfigurationParameter(key = PLUGIN_PROPERTY_NAME, value = "pretty,json:target/blubb2cucumber.json")
public class RunBlubb2CucumberTest
{
// nichts zu tun
}
Классы определения шагов находятся в том же пакете, что и все классы набора.
В обоих классах определения шагов есть некоторые повторяющиеся определения шагов (только тело метода отличается) и используются в файлах функций.

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

    @Gegebensei("Example")
public void gegebenSeiExample(Map map)
{
for (Entry e : map.entrySet())
{
blabla.put(e.getKey(), new BlaMock(e.getValue()));
}
}
Если я запущу оба в intellij idea, выбрав только оба класса набора, все тесты пройдут успешно. Если я проведу все тесты, я получу повторяющиеся исключения шагов. (также в затмении)

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

DuplicateStepDefinitionException

io.cucumber.core.runner.DuplicateStepDefinitionException: Duplicate step definitions in de.bla.blubb1.StepDefsEingangsparameter.erstelle() and de.bla.blubb2.StepDefsEingangsparameter.erstelle()

at io.cucumber.core.runner.CachingGlue.lambda$prepareGlue$3(CachingGlue.java:278)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at io.cucumber.core.runner.CachingGlue.prepareGlue(CachingGlue.java:272)
at io.cucumber.core.runner.Runner.runPickle(Runner.java:72)
at io.cucumber.junit.platform.engine.CucumberEngineExecutionContext.lambda$runTestCase$4(CucumberEngineExecutionContext.java:112)
at io.cucumber.core.runtime.CucumberExecutionContext.lambda$runTestCase$5(CucumberExecutionContext.java:136)
at io.cucumber.core.runtime.RethrowingThrowableCollector.executeAndThrow(RethrowingThrowableCollector.java:23)
at io.cucumber.core.runtime.CucumberExecutionContext.runTestCase(CucumberExecutionContext.java:136)
at io.cucumber.junit.platform.engine.CucumberEngineExecutionContext.runTestCase(CucumberEngineExecutionContext.java:109)
at io.cucumber.junit.platform.engine.NodeDescriptor$PickleDescriptor.execute(NodeDescriptor.java:168)
at io.cucumber.junit.platform.engine.NodeDescriptor$PickleDescriptor.execute(NodeDescriptor.java:90)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
Я уже много пробовал с разветвлением на основе классов (в конфигурации запуска), но это слишком сильно замедляет работу других тестов и прочего.
Определения шагов должны быть оставаться такими, какие они есть (требование). Я знаю, что мог бы просто переименовать их.
Есть ли способ запустить эти два пакета «отдельно»?
(без изменения maven и run config)
Я хочу, чтобы эти два класса набора огурцов запускались отдельно (в разных потоках? jvms?), предпочтительно определенные где-то с помощью аннотации или свойства конфигурации.

Подробнее здесь: https://stackoverflow.com/questions/791 ... efinitions
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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