Selenium (Eclipse) - 功能文件 - 如果未定义步骤定义,则不突出显示步骤

Posted

技术标签:

【中文标题】Selenium (Eclipse) - 功能文件 - 如果未定义步骤定义,则不突出显示步骤【英文标题】:Selenium (Eclipse) - feature file - step is not highlighted if step definition is undefined 【发布时间】:2021-12-10 10:23:22 【问题描述】:

我对 Selenium 和 Cucumber 很陌生。 我正在征求你的建议。 我的问题是:功能文件 - 步骤未突出显示,如果步骤定义未定义,则不显示警告消息。

我的功能文件:

[![在此处输入图片描述][1]][1]

我的跑步者:

[![在此处输入图片描述][2]][2]

Maven 依赖:

[![在此处输入图片描述][3]][3]

我的 pom.xml:

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>linkedlearning</groupId>
  <artifactId>Mycucumbercourse</artifactId>
  <version>0.0.1-SNAPSHOT</version>

  <name>Mycucumbercourse</name>
  <!-- FIXME change it to the project's website -->
  <url>http://www.example.com</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <java.version>1.8</java.version>
    <junit.version>4.11</junit.version>
    <cucumber.version>4.2.5</cucumber.version>
    <maven.compiler.version>3.3</maven.compiler.version>  
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
  </properties>

    <dependencies>
        <dependency>
            <groupId>io.cucumber</groupId>
            <artifactId>cucumber-java</artifactId>
            <version>$cucumber.version</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>io.cucumber</groupId>
            <artifactId>cucumber-junit</artifactId>
            <version>$cucumber.version</version>
            <scope>test</scope>
        </dependency>
        
        <!-- hamcrest dependency required in order to be able to run test using maven (command: mvn test) -->
        <dependency>
            <groupId>org.hamcrest</groupId>
            <artifactId>hamcrest</artifactId>
            <version>2.2</version>
            <scope>test</scope>
        </dependency>
  
    </dependencies>

  <build>
    <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
      <plugins>
        <!-- clean lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle -->
        <plugin>
          <artifactId>maven-clean-plugin</artifactId>
          <version>3.1.0</version>
        </plugin>
        <!-- default lifecycle, jar packaging: see https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging -->
        <plugin>
          <artifactId>maven-resources-plugin</artifactId>
          <version>3.0.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.8.0</version>
        </plugin>
        <plugin>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.22.1</version>
        </plugin>
        <plugin>
          <artifactId>maven-jar-plugin</artifactId>
          <version>3.0.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-install-plugin</artifactId>
          <version>2.5.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>2.8.2</version>
        </plugin>
        <!-- site lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#site_Lifecycle -->
        <plugin>
          <artifactId>maven-site-plugin</artifactId>
          <version>3.7.1</version>
        </plugin>
        <plugin>
          <artifactId>maven-project-info-reports-plugin</artifactId>
          <version>3.0.0</version>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
</project>

我试图调查自己并发现 import io.cucumber.junit.CucumberOptions;结合 stepNotifications = true 可能会有所帮助。但是,当我尝试添加它时,我得到:“无法解析导入 io.cucumber.junit”。期待您的善意建议。 [1]:https://i.stack.imgur.com/KcrQN.png [2]:https://i.stack.imgur.com/t2h9a.png [3]:https://i.stack.imgur.com/n2gFr.png

【问题讨论】:

【参考方案1】:

我在这里找到了答案: Step Definition detection only works when project is configured as cucumber project.- Virtual Machine

一般来说: 如果步骤定义没有发生并且特征文件没有用琥珀色突出显示未定义的步骤,这意味着该项目没有被转换为黄瓜项目。 执行以下操作:

    要将项目转换为黄瓜项目,请执行以下操作:从项目资源管理器中右键单击您的项目 > 配置 > 转换为黄瓜项目。

    确保在 Window > Preferences > Cucumber 中选中 Enable Step Definitions Glue Detection 选项

【讨论】:

我自己基本上找到了问题的答案

以上是关于Selenium (Eclipse) - 功能文件 - 如果未定义步骤定义,则不突出显示步骤的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Eclipse 中使用 Selenium 将外部 .js 导入到我的 Java 测试中?

硒包“ com.thoughtworks”在Eclipse中无法解析

自动化测试Maven+Eclipse+Selenium+Java环境搭建和测试

Python+selenium+eclipse+pydev自动化测试环境搭建

eclipse自动化需要哪些selenium的包

selenium+eclipse+python环境