首页 > 解决方案 > 带有 Java 和 Selenium 的 Cucumber 错误地报告重复的步骤定义

问题描述

尝试运行黄瓜测试时,我开始收到此错误:

No tests were found

Exception in thread "main" cucumber.runtime.DuplicateStepDefinitionException: Duplicate step definitions in e2e.brukerveiledning.BrukerveiledningSteps.jegGårTilLivssituasjonForAaSeNyFunksjonFor(String) in file:/home/frank/Desktop/saksbehandling/e2e/cucumber/target/test-classes/ and e2e.brukerveiledning.BrukerveiledningSteps.jegGårTilLivssituasjonForAaSeNyFunksjonFor(String) in file:/home/frank/Desktop/saksbehandling/e2e/cucumber/target/test-classes/

现在,我真的不明白这个错误信息。它声称有一个重复的步骤定义,它指向一个文件夹,称其为文件。此外,它是一个输出文件夹,而不是包含实际源文件的文件夹。那么,任何东西是如何“重复”的呢?

这适用于到目前为止一直运行良好的许多步骤和定义。每次我注释掉一个所谓的“重复”时,它都会继续声称另一个步骤是重复的。对于其中的每一个,搜索都会产生一个且只有一个结果。

有任何想法吗?

它声称的步骤定义是重复的,而不是重复的。搜索名称只会产生一个结果。

对于上面的例子:

@Når("^jeg går til livssituasjon for aa se ny funksjon for \"([^\"]*)\"$")
public void jegGårTilLivssituasjonForAaSeNyFunksjonFor(String sakTag) {
    long sakId = ScenarioState.getSakId(sakTag);
    navigationPage.gaTilPath("/sak/" + sakId + "/livssituasjon", false);
}

搜索此步骤定义时,仅找到一个匹配项:

在此处输入图像描述

如果我注释掉这个定义并尝试运行测试,它会转到下一个具有相同声明的测试,从而产生相同的结果。

因此,某处显然存在一些更深层次的错误,因为错误声明完全是虚假的(至少看起来如此)。

此外,当错误第一次发生时(在 Jenkins 中,然后在本地复制),一些测试运行良好,而有些则没有。但是在尝试运行其中一个失败的测试后,所有其他测试也突然失败了。

标签: javaseleniumkotlincucumber

解决方案


推荐阅读