Cucumber:java.lang.IllegalArgumentException:不是文件或目录:G:\Codebase\MavenCucumber\--plugin

问题描述 投票:0回答:7

每当我尝试在 Eclipse 中运行我的功能文件时,使用 Maven 都会收到以下错误:

线程“main”中的异常 java.lang.IllegalArgumentException:不是文件或目录:G:\Codebase\MavenCucumber--cucumber.runtime.io.FileResourceIterator$FileIterator.(FileResourceIterator.java:54) 处的插件 cucumber.runtime .io.FileResourceIterator.(FileResourceIterator.java:20) 在 cucumber.runtime.io.FileResourceIterable.iterator(FileResourceIterable.java:19) 在 cucumber.runtime.model.CucumberFeature.load(CucumberFeature.java:38) 在 cucumber.runtime .RuntimeOptions.cucumberFeatures(RuntimeOptions.java:117) 在 cucumber.runtime.Runtime.run(Runtime.java:92) 在 cucumber.api.cli.Main.run(Main.java:20) 在 cucumber.api.cli。 Main.main(Main.java:12)

enter image description here

上图是我的项目的结构,功能文件包含以下代码-

@tag
Feature: Proof of Concept

  @tag1
  Scenario: This is my first test Scenerio
    Given This is my first step
    When This is my second step
    Then This is my third step
java maven cucumber-junit
7个回答
6
投票

我使用的是 cucumber-java、cucumber-junit、cucumber-picocontainer 的 1.1.2 版本 jar。因此我遇到了上述错误。

现在我使用的是 1.2.2 版本的 jar,它在这个版本上运行得非常好。


3
投票

此错误明确表示“不是文件或目录”,这意味着路径不正确。造成这种情况的原因可能有多种。

其中之一是将 Cucumple 库升级到最新版本,这适用于您的情况。

其次是特征文件的放置。我假设功能文件只能位于两个地方:

  1. 在 src 文件夹或 src 子文件夹中。
  2. 在 src 文件夹之外,这意味着您将功能文件保存在项目中的某个文件夹中,但在 src 包之外。

在第一种情况下,您应该指定 CucumberOptions,如下所示:

@RunWith(Cucumber.class)
@CucumberOptions(
        features = "src/somefolder/Feature"

第二种情况:

@RunWith(Cucumber.class)
@CucumberOptions(
        features = "Feature")

在这里查看第二种情况的示例http://toolsqa.com/cucumber/first-cucumber-selenium-java-test/


1
投票

实际上,这个问题发生在我身上,因为功能文件名是大写的。当我将其更改为小写后,问题就解决了。


0
投票

下面的黄瓜选项格式对我有用

src\\main\\java\\com.qa.features
com.qa.stepDefinition

@RunWith(Cucumber.class)
@CucumberOptions(
    features = "src\\main\\java\\com\\qa\\features"
    ,glue={"com/qa/stepDefinition"}
    ,format={"pretty","html:test-output"}
}

0
投票

尝试

mvn test -Dcucumber.options="--tags @TagName"

0
投票
Just add feature & stepDefination package like below into your TestRunner Java class

@CucumberOptions(features = "src/test/java/feature",
glue = "src/test/java/stepDefination", monochrome = true)
public class TestNGRunner extends AbstractTestNGCucumberTests{


}

-1
投票

通过在项目下创建一个单独的文件夹(即“功能”),而不是将功能文件保留在项目的子文件夹中,解决了该问题。

© www.soinside.com 2019 - 2024. All rights reserved.