0

Java 用のキュウリの本に従っていますが、私が取り組んでいるこの例は、第 2 章の内容と非常によく似ています。この時点で IDE に組み込みたくないので、これは cmd 行にあります。

Feature: practice test
  Scenario Outline: not CheckingOut bananas
    given abc
    when place holder2
    then place holder3

テスト手順:

public class SimpleTest {
    @Given("^abc")
    public void part1() throws Exception {
        System.out.println("part 1");
        throw new Exception("an exceptoin");
    }

    @When("place holder2")
    public void part2(){
        System.out.println("part 2");
    }

    @Then("place holder3")
    public void part3() {
        System.out.println("part 3");
    }

}

@Given で「abc」、「^abc」、「give abc」を試してみました

私はこれを次のバットファイルで駆動しています。ステップ定義はコンパイルされ、クラスファイルはそこにあります。-g (接着剤) オプションでパッケージ名が引数値であることを認識したので、これをできるだけ単純にしましたが、シナリオが 0 件見つかりました。バット ファイルは単純です。

echo cucumber compile and execution
javac -cp "lib/*" step_definitions/SimpleTest.java 
javac -cp "lib/*;web/WEB-INF/lib/*" test/java/xxxxx/zzzz/referral/out/batch/RunCukesTest.java 
java -cp "lib/*;web/WEB-INF/lib/*;.;test/java/*" cucumber.api.cli.Main -p pretty -g step_definitions features

一貫して次の結果が得られます。

Feature: practice test

  Scenario Outline: not CheckingOut bananas ←[90m# bogus.feature:2←[0m
    given abc
    when place holder2
    then place holder3


0 Scenarios
0 Steps
0m0.000s

明らかに、CLI は機能ファイルを見つけていますが、コンパイルされたステップ定義は見つかりません。クラスパスの問題であることは間違いありません。追加のディレクトリを提供し、ステップ定義ファイルを移動しました。CLI は機能ファイルを取得せず、それをコンパイルされた定義に一致させません。ありがとうございます。多くの場合、これらの質問を入力すると解決策が実現しますが、これについてはそうではありません。

*.feature ファイルが cucumber を実行するための要件であり、junit が cucumber.class テスト ランナーにフックされている場合でもコンパイル済みのステップ定義に対応している必要がある場合、この本は不確実性を減らす余地を残している可能性があります。本のフォーラムは薄く見えました。おそらく、github またはソース コードがある場所に移動する必要があります。

4

2 に答える 2

0

Given、When、Then、And & But の最初の文字を大文字にしてみてください

Cucumber では、各シナリオと機能の前にテキストを使用できるため、それぞれで何が起こるかをより詳しく説明できます。Given、When、Then、And & But に大文字を使用することは、そこにステップがあることを知るための標準です。

あなたの例では:

Feature: practice test

Scenario: not CheckingOut bananas ←[90m# bogus.feature:2←[0m
 Given abc
 When place holder2
 Then place holder3

編集

ここに示されているように、以下の例を提供する場合を除き、シナリオ アウトライン構文を使用しないでください。

Feature: practice test

Scenario Outline: not CheckingOut bananas ←[90m# bogus.feature:2←[0m
 Given abc
 When place holder<placeholder>
 Then place holder<placeholder2>

 Examples:
|placeholder|placeholder2|
| 1         | 2          |
| 2         | 3          |
| 3         | 4          |
于 2016-03-16T09:39:09.677 に答える