Cucumber JUnit 测试不将功能粘合到步骤定义

Posted

技术标签:

【中文标题】Cucumber JUnit 测试不将功能粘合到步骤定义【英文标题】:Cucumber JUnit tests not gluing feature to stepdefinitions 【发布时间】:2019-09-05 15:28:59 【问题描述】:

我已经在 java 中设置了一个黄瓜项目,在我的 Eclipse IDE 中我可以直接运行我的功能文件并且测试将完成。但是,当我将它们作为 JUnit 测试运行时,它们不会运行,在控制台中它们显示为

@When("^user navigates to Login Page$")
public void user_navigates_to_Login_Page() throws Throwable 
    // Write code here that turns the phrase above into concrete actions
    throw new PendingException();

如果我双击 JUnit 选项卡中的步骤,我会收到以下消息

“在所选项目中找不到测试类”

我的测试运行器类看起来像这样,

package com.bsautoweb.runner;

import java.io.File;

import org.junit.AfterClass;
import org.junit.runner.RunWith;

import com.cucumber.listener.Reporter;

import cucumber.api.CucumberOptions;
import cucumber.api.junit.Cucumber;

@RunWith(Cucumber.class)
@CucumberOptions(glue = "src/test/java/com/bsautoweb/stepdefinitions", features = "src/test/resources/features/",
plugin = "com.cucumber.listener.ExtentCucumberFormatter:target/cucumber-reports/report.html",
monochrome = true
)

public class Testrunner 
    @AfterClass
    public static void writeExtentReport() 
        Reporter.loadXMLConfig(new File("config/report.xml"));

    

我的文件夹结构是这样的

JUnit 似乎忽略了我的胶水代码。即使我输入了无效的路径,它也不会报错。

【问题讨论】:

将粘合选项设置为com/bsautoweb/stepdefinitions 嗨,这对我有用,谢谢,如果你想回答我可以接受 【参考方案1】:

将粘合选项设置为com/bsautoweb/stepdefinitions 或java 包样式com.bsautoweb.stepdefinitions

【讨论】:

这是正确答案。 Java 包样式可能会更好一些,因为它强调它不是项目中的文件夹,而是命名空间。【参考方案2】:

给胶水=“com.bsautoweb.stepdefinitions”

【讨论】:

以上是关于Cucumber JUnit 测试不将功能粘合到步骤定义的主要内容,如果未能解决你的问题,请参考以下文章

cucumber-junit-platform-engine 中的@CucumberOptions

JUnit 测试和集成测试 - Jenkins - Cucumber

使用 cucumber 为 java selenium serenity 测试运行多个测试功能

需要帮助在 junit 运行中使用 cucumber、selenium、maven、TestNG 运行跨浏览器(多浏览器)测试

我在Eclipse中使用Java建立了一个简单的自动化框架,但是无法通过Junit运行Cucumber测试

Java:package cucumber.api.junit不存在