当前位置: 首页 > 知识库问答 >
问题:

Cucumber功能无法检测eclipse中的相对路径

魏彦
2023-03-14

我已经创建了一个项目在eclipse开普勒使用cucumber和jUnit运行。我也使用log4j.properties文件放在配置文件夹在我的项目。Log4j属性配置定义如下在Base类。

PropertyConfigurator.configure("config/log4j.properties");

Profile.feature

Feature: This is a profile feature
  @Testing
  Scenario: this is the first scenario for Profile page
  Given I open Naukri app
  When I tap on "Profile Image"
  Then The toolbar shows "User Profile"

RunnerTest.java

@RunWith(Cucumber.class)
@CucumberOptions(
        format = { "pretty", "html:target/html/", "json:target/json/output.json"},  
        features = "src/test/features",
        glue = "com.stepsdefination",
        tags = {"@Testing"}
        )
public class RunnerTest {

}

现在当我运行配置文件时。eclipse中的功能文件-

java.io.FileNotFound异常:config\log4j.properties(系统找不到指定的路径)

但当我直接运行RunnerTest时。java文件,然后它就完美地工作了。

为什么我的功能文件没有采用相对路径。当我硬编码文件位置时,它会起作用,比如“D:\Project\Workspace\DemoCucumer\config\log4j.properties”。当位置更改时,不可能每次都更改文件路径。

项目结构:

DemoCucumber
>src\main\java
>src\test\java
>config > log4j.properties

我已经在eclipse中安装并下载了所有与cucumber相关的插件。

共有1个答案

牧献
2023-03-14

您需要将配置文件定义为资源:

如果您的项目是Maven项目,您需要有一个名为src/main/资源的目录,并将整个配置目录移动到其中。

在Eclipse中,右键单击resources目录,然后选择Build Path

在代码中,要检索文件,需要如下内容:

URL res = getClass().getResource("/config/log4j.properties");
Assert.assertNotNull("Your resources are not configured correctly!", res);
File f = new File(res.getFile());
PropertyConfigurator.configure(f.getCanonicalPath());
 类似资料:
  • 我的功能文件如下 end2end_test.feature 我的runner.java文件如下所示 testRunner.java

  • 我已经安装了cucumber eclipse插件。我已经用空手道编写了我的简单功能文件,当我试图将其作为cucumber测试运行时,我被要求实现缺少的步骤。当我使用专用的运行程序运行同一个功能文件时,它的执行不会出现任何问题。请你帮忙。我正在尝试在不使用专用跑步者的情况下进行这项测试

  • 我完全不擅长在设备上测试应用,尤其是索尼Xperia。我正在使用Android模拟器测试应用程序,但我现在有一台索尼Xperia。首先,我通过USB将设备连接到笔记本电脑。但是笔记本电脑检测不到我的手机。Eclipse检测手机需要驱动吗?

  • 我需要一些帮助运行一个功能文件。 这是Maven项目的骨架: 这是我的pom.xml文件: 我不能运行功能文件,与此,我不能运行任何与cucumber相关的。你能帮帮我吗? 提前谢了。

  • 本文向大家介绍Modernizr检测到的功能,包括了Modernizr检测到的功能的使用技巧和注意事项,需要的朋友参考一下 以下是Modernizr可以检测到的功能列表- 特征 CSS属性 JavaScript检查 @ font-face .fontface Modernizr.fontface 帆布 。帆布 现代画布 画布文字 .canvastext Modernizr.canvastext H

  • 问题内容: 我将扮演一个恶魔的拥护者片刻。我一直想知道为什么将浏览器检测(而不是功能检测)视为一种不好的做法。如果我测试某个浏览器的某个版本并确认该功能以某种可预测的方式运行,则可以决定对其进行特殊处理。这样做的理由是将来会万无一失,因为此部分浏览器版本不会更改。另一方面,如果我检测到DOM元素具有函数X,则不一定表示: 此功能在所有浏览器中的工作方式相同,并且 更重要的是,即使在所有未来的浏览器