2 回答

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超10個(gè)贊
檢查 maven pom.xml 黃瓜-核心黃瓜-java 黃瓜-junit
這些文件應(yīng)該具有相同的版本。在您的示例中,cucumber-java artifact id 的版本與其他版本不同。
嘗試改變它。

TA貢獻(xiàn)1807條經(jīng)驗(yàn) 獲得超9個(gè)贊
在下面找到一些片段來分解問題
檢查是否存在對(duì) groupid的傳遞依賴info.cukes
$ mvn dependency:tree | grep 'info.cuke'
[INFO] | +- info.cukes:cucumber-junit:jar:1.2.5:compile
[INFO] | | \- info.cukes:cucumber-core:jar:1.2.5:compile
[INFO] | | +- info.cukes:cucumber-html:jar:0.2.3:compile
[INFO] | | \- info.cukes:cucumber-jvm-deps:jar:1.0.5:compile
[INFO] | +- info.cukes:cucumber-testng:jar:1.2.5:compile
[INFO] | +- info.cukes:cucumber-java:jar:1.2.5:compile
[INFO] | +- info.cukes:gherkin:jar:2.12.2:compile
檢查完整輸出時(shí)會(huì)顯示您的哪個(gè)依賴項(xiàng)取決于它
...
[INFO] +- com.github.mkolisnyk:cucumber-report-generator:jar:1.3:compile
...
[INFO] | +- info.cukes:cucumber-junit:jar:1.2.5:compile
...
[INFO] | +- info.cukes:cucumber-testng:jar:1.2.5:compile
...
[INFO] \- ru.sbtqa.tag:cucumber-runner:jar:1.0.7:compile
[INFO] \- ru.sbtqa.tag:cucumber-runner:jar:1.0.7:compile
[INFO] +- ru.yandex.qatools.allure:allure-cucumber-jvm-adaptor:jar:1.6.4:compile
...
[INFO] | +- info.cukes:cucumber-core:jar:1.2.5:compile
...
[INFO] | +- info.cukes:cucumber-java:jar:1.2.5:compile
[INFO] | +- info.cukes:gherkin:jar:2.12.2:compile
...
[INFO] +- info.cukes:cucumber-junit:jar:1.2.5:compile
由于可能存在具有相同限定名稱的類的重疊,因此在 pom.xml
<dependency>
<groupId>com.github.mkolisnyk</groupId>
<artifactId>cucumber-report-generator</artifactId>
<version>1.3</version>
<exclusions>
<exclusion>
<groupId>info.cukes</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
再次運(yùn)行測(cè)試會(huì)拋出異常
java.lang.NoClassDefFoundError: gherkin/IGherkinDialectProvider
當(dāng)我們明確定義io.cucumber:gherkin它可能與指定的依賴項(xiàng)時(shí),將<version>其注釋掉以查看是否獲取了另一個(gè)版本
<!--<dependency>-->
<!--<groupId>io.cucumber</groupId>-->
<!--<artifactId>gherkin</artifactId>-->
<!--<version>6.0.14</version>-->
<!--</dependency>-->
這表明,io.cucumber:cucumber-core:jar:4.2.0取決于版本5.1.0的io.cucumber:gherkin
$ mvn dependency:tree
...
[INFO] +- io.cucumber:cucumber-core:jar:4.2.0:compile
[INFO] | +- io.cucumber:cucumber-html:jar:0.2.7:compile
[INFO] | +- io.cucumber:gherkin:jar:5.1.0:compile
通過這些更改,至少TestNG單元測(cè)試正在運(yùn)行。
作為依賴項(xiàng)com.github.mkolisnyk:cucumber-report-generator
,ru.sbtqa.tag:cucumber-runner
根據(jù)info.cuke
依賴項(xiàng),它們可能不再正常工作。要解決此類問題,您可以:
檢查可能不依賴于組 ID 的較新版本
info.cuke
使用早期版本的
io.cucumber
依賴項(xiàng)使用更細(xì)粒度的
info.cuke
依賴項(xiàng)排除,而不是排除所有工件 ID以上幾點(diǎn)的組合
其他東西,取決于您的用例和要求
也許這些步驟可以幫助您找到適合您的解決方案。
添加回答
舉報(bào)