8

私のcucumber -jvm、Maven、junitセットアップでは、testRunnerファイルを次のようにしています

package com.lebara.testrunner;

import cucumber.junit.Cucumber;
import org.junit.runner.RunWith;

@RunWith(Cucumber.class)
@Cucumber.Options(

glue = {"com.lebara.stepdefs","com.lebara.framework.main", "com.lebara.testrunner"},
features = "C:/Users/sarthak.dayanand/Documents/WebRefreshTest/CukeAutomation/LebaraWebAutomationTest1/src/main/resources",
format = {"pretty", "html:target/cucumber-html-report", "json-pretty:target/cucumber-report.json"},
tags = {"@UserJourney"}

)
public class RunCukesTest {
}

上記のディレクトリに機能ファイルがあります。

実行すると、次の例外が発生します。

cucumber.runtime.CucumberException: No features found at [C:/Users/sarthak.dayanand/Documents/WebRefreshTest/CukeAutomation/LebaraWebAutomationTest1/src/main/resources/cucumber]...

testrunner で「features」オプションを削除すると、testrunner.java と同じディレクトリで機能ファイルを検索しようとします。

cucumber.runtime.CucumberException: No features found at [com/lebara/testrunner]

そこに機能ファイルを配置すると、機能します。

私の質問は、キュウリのデフォルトのファイル構造であると思っていた以前の場所から機能ファイルが取得されないのはなぜですか-mavenセットアップです。

そこから拾うにはどうすればいいですか?助けていただければ幸いです。

4

10 に答える 10

18

テスト ランナーと機能ファイルは正確にはどこにありますか? 完全に機能する次のセットアップがあります。

src/test/
    java/
        com/mypackage/
            TestRunner.java
            StepDefinition.java
    resources
        com/mypackage/
            fancy.feature

Maven/Cuke 規則では、tests/java ディレクトリから実行されるテストと、test/resources ディレクトリにある機能ファイルが含まれます。私のテストランナーは基本的にあなたのものと同じですが、オプションが少なくなっています:

import cucumber.api.junit.Cucumber;
import org.junit.runner.RunWith;

@RunWith(Cucumber.class)
@Cucumber.Options(format = {"pretty"})
public class TestRunner { }

まだ答えが見つからない場合は、これが役立つことを願っています。

于 2013-02-11T06:22:22.893 に答える
6

私はあなたに似た設定をしています(Maven/Cucumberの規則を使用していません)。私のオプションでは、ルートからのパスを指定しませんが、機能が保持されているプロジェクトのソース フォルダーからのパスを指定します。そうしないと、テストは自分のマシンからしか実行できないため、これは理にかなっています。

あなたの場合、次のようにすべきだと思います:

features = "src/main/resources"
于 2013-08-24T16:35:19.560 に答える