gpt4 book ai didi

java - 由于 java.lang.ClassNotFoundException : cucumber. runner.TimeServiceEventBus,Serenity/Cucumber 测试未运行

转载 作者:行者123 更新时间:2023-12-01 19:44:26 25 4
gpt4 key购买 nike

当我从命令行运行 Serenity BDD 测试时,我得到以下堆栈跟踪:

initializationError(net.persgroep.targetqa.webTests.WebTest)  Time elapsed: 0.002 s  <<< ERROR!
java.lang.NoClassDefFoundError: cucumber/runner/TimeServiceEventBus
Caused by: java.lang.ClassNotFoundException: cucumber.runner.TimeServiceEventBus

在 Serenity 聊天中,他们建议我更改依赖版本。所以我这样做了,但仍然出现错误。

这些是我的 pom 文件中的依赖项:

   <dependency>
<groupId>net.serenity-bdd</groupId>
<artifactId>serenity-core</artifactId>
<version>${serenity.version}</version>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-core</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-java</artifactId>
<version>${cucumber.version}</version>
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-junit</artifactId>
<version>${cucumber.version}</version>
</dependency>
<dependency>
<groupId>net.serenity-bdd</groupId>
<artifactId>serenity-junit</artifactId>
<version>${serenity.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>net.serenity-bdd</groupId>
<artifactId>serenity-screenplay</artifactId>
<version>${serenity.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>net.serenity-bdd</groupId>
<artifactId>serenity-screenplay-webdriver</artifactId>
<version>${serenity.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>



<dependency>
<groupId>net.serenity-bdd</groupId>
<artifactId>serenity-model</artifactId>
<version>${serenity.version}</version>
</dependency>
<dependency>
<groupId>net.serenity-bdd</groupId>
<artifactId>serenity-cucumber</artifactId>
<version>1.9.48</version>
</dependency>
<dependency>
<groupId>net.serenity-bdd</groupId>
<artifactId>serenity-core</artifactId>
<version>${serenity.version}</version>
</dependency>

版本:

 <serenity.version>2.0.89</serenity.version>
<serenity.maven.version>2.0.89</serenity.maven.version>
<serenity.cucumber.version>1.9.48</serenity.cucumber.version>
<cucumber.version>4.8.0</cucumber.version>

它以前可以工作,一些团队成员建议我应该使用声明式编程,所以我们改变了一些 for 循环,我想检查测试是否仍在运行。那就是我收到此错误的时候。

最佳答案

首先,您排除以下内容:

    <exclusions>
<exclusion>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-core</artifactId>
</exclusion>
</exclusions>

应该解释“ClassNotFoundException:cucumber.runner.TimeServiceEventBus”错误。

此外,您还有重复的依赖项。您确实应该调查 Maven 给您的所有警告。最后,通过显式声明 Serenity 的各个部分,您将可能不兼容的 Serenity 部分强加到自身上。除非您有特别充分的理由,否则您应该避免这样做!

无论如何,一个简单依赖:

            <dependency>
<groupId>net.serenity-bdd</groupId>
<artifactId>serenity-cucumber</artifactId>
<version>${serenity.version}</version>
</dependency>

带来了您需要的一切:所有的 Cucumber、所有的 Selenium、JUnit,当然还有所有的 Serenity。

您还可以使用:

            <dependency>
<groupId>net.serenity-bdd</groupId>
<artifactId>serenity-cucumber4</artifactId>
<version>${serenity.version}</version>
</dependency>

如果你想使用 Cucumber 版本 4,请注意那里额外的 4。虽然我上次检查过(诚然已经有一段时间了),但这仍然是实验性的。

请参阅 mvn dependency:tree 进行确认。

关于java - 由于 java.lang.ClassNotFoundException : cucumber. runner.TimeServiceEventBus,Serenity/Cucumber 测试未运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59141371/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com