Фреймворк Cucumber выдает ошибку при запуске тестов - PullRequest
0 голосов
/ 10 июня 2019

Я использую фреймворк Cucumber для написания моих ATDD.Я получаю следующую ошибку при попытке запустить тест на огурец.

[INFO] Running my.package.RunCukesTests
[ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.146 s <<< FAILURE! - in my.package.RunCukesTests
[ERROR] initializationError(my.package.RunCukesTests)  Time elapsed: 0.005 s  <<< ERROR!
java.lang.NoClassDefFoundError: io/cucumber/stepexpression/TypeRegistry
Caused by: java.lang.ClassNotFoundException: io.cucumber.stepexpression.TypeRegistry

[INFO] 
[INFO] Results:
[INFO] 
[ERROR] Errors: 
[ERROR]   RunCukesTests.initializationError » NoClassDefFound io/cucumber/stepexpression...
[INFO] 
[ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0
[INFO] 
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE

Ниже приведены зависимости от огурца:

<properties>
<cucumber.version>3.0.2</cucumber.version>
</properties>
<dependency>
        <groupId>io.cucumber</groupId>
        <artifactId>cucumber-java8</artifactId>
        <version>${cucumber.version}</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>io.cucumber</groupId>
        <artifactId>cucumber-junit</artifactId>
        <version>${cucumber.version}</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>info.cukes</groupId>
        <artifactId>cucumber-picocontainer</artifactId>
        <version>1.2.5</version>
        <scope>test</scope>
    </dependency>

RunCuckesTest.java

import cucumber.api.CucumberOptions;
import cucumber.api.junit.Cucumber;
import org.junit.runner.RunWith;

@RunWith(Cucumber.class)
@CucumberOptions(plugin = { "html:target/test_results/html/TestRunner/cucumber-html-report",
        "json:target/test_results/json/TestRunner-reports.json", "pretty" }, tags = { "" }, features = {
                "src/test/resources/" }, glue = { 
                        "glue/package/steps",
                        "glue/package1/steps" })
public class RunCukesTests {
}

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

Любая помощь действительно приветствуется.Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 11 июня 2019

У меня почти такая же конфигурация, и она отлично работает для меня.Пожалуйста, пользователь ниже зависимости и проверьте, если это любая другая проблема или нет.

Моя зависимость от pom.xml

       <dependency>
            <groupId>io.cucumber</groupId>
            <artifactId>cucumber-java</artifactId>
            <version>2.4.0</version>
        </dependency>


     <dependency>
            <groupId>io.cucumber</groupId>
            <artifactId>cucumber-junit</artifactId>
            <version>2.4.0</version>
            <scope>test</scope>
        </dependency>


      <dependency>
            <groupId>info.cukes</groupId>
            <artifactId>cucumber-picocontainer</artifactId>
            <version>1.2.5</version>
        </dependency>

Теперь, если вы используете Cucumber 3, вам также необходимо обновить версию пико-контейнера (2.15).

0 голосов
/ 10 июня 2019

Ключевой момент: Мы не будем смешивать зависимости info.cukes и io.cucumber, особенно их версии!Это может привести к непредсказуемому результату.

Решение: Вы можете предпочесть ниже корректный набор зависимостей io.cucumber и обновить cucumber v в соответствии с потребностями вашей платформы.

 <dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-junit</artifactId>
    <version>4.2.6</version>
</dependency>

<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-picocontainer</artifactId>
    <version>4.2.6</version>
</dependency>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...