我目前正在使用 Cucumber 框架创建一个测试套件。我已经为我必须测试的每个功能创建了功能文件。 功能文件从不显示通过粘合代码覆盖的条件。单击“重新计算步骤”时,它会引发错误:“扫描步骤定义”期间发生内部错误。 java.lang.NullPointerException
我尝试更改Test Runner类中的glue路径,但也没有解决问题。该功能可以毫无问题地执行,并且代码运行良好,唯一的问题是功能文件不断指出没有匹配的粘合代码。
#OrderInteraction
@Orders
Feature: Validating Order functionality
Background: Pre-requisites of Order Functionality
Given WebDriver is initialized
And Website is up and running
When User Enter "Username" and "Password" as Credentials
Then Validate User Login
Test Runner :
package Cucumber;
import org.junit.runner.RunWith;
import io.cucumber.junit.Cucumber;
import io.cucumber.junit.CucumberOptions;
@RunWith(Cucumber.class)
@CucumberOptions(features = "Features", glue=
{"src/main/java/CucumberStepDefinitions"})
public class CucumberTestRunner {
}
我想找到一种方法,让 Cucumber 功能文件可以识别存在的粘合代码。请随时指导我解决这个问题的现有问题或有帮助的文档。
此讨论中有一个可能的解决方案https://github.com/cucumber/cucumber-eclipse/issues/303
这基本上是说要确保你没有
import cucumber.api.java.en.*;
在您的步骤文件中,并使用
import cucumber.api.java.en.Given;
import cucumber.api.java.en.Then;
import cucumber.api.java.en.When;
相反。
这为我解决了问题
我终于找到了这个问题的解决方案。问题出在cucumber插件版本上,我参考了Cucumber-Eclipse-Update-SiteSnapshot来解决。
步骤如下:
1.从 Eclipse 中,转到菜单“帮助”>“安装新软件”
2.使用:https://cucumber.github.io/cucumber-eclipse-update-site-snapshot
3.选中Cucumber Eclipse Plugin 的复选框
4.按照安装过程中显示的说明选择下一步。
5.完成指导后重新启动 Eclipse。
插件更新后,功能文件会自动扫描步骤并找到匹配的粘合代码。
我找到了简单安全的解决方案。 右键单击项目 - >属性 - >从黄瓜选项中选择胶水代码选项 - >选中/取消选中已取消选中/选中的复选框“无论参数类型如何匹配”,然后单击应用。