4

Eclipse で機能ファイルを作成した後、それを Cucumber 機能として実行します。コンソールが提供するステップ定義を使用して、テスト ファイルの最初のベースを作成します

@Given("^the input is <(\\d+)> <(\\d+)>$")

これらはコンソールによって出力されるはずですが、現在、ステップ定義なしで機能が表示されています。

Feature: this is a test
  this test is to test if this test works right

  Scenario: test runs # src/test/resources/Test.feature:4
    Given: i have a test
    When: i run the test
    Then: i have a working test


0 Scenarios
0 Steps
0m0,000s

この機能は、キュウリが正常に動作しているかどうかを確認するためのものです。

ランナー:

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

@RunWith(Cucumber.class)
@CucumberOptions(
        monochrome = true,
        dryRun = false,
        format = "pretty",
        features = "src/test/resources/"
        )
public class RunCukes {
}

コンソールにすべての情報が表示されない原因は何ですか?

TL:DR コンソールに、欠落しているステップの正規表現が表示されない

編集:機能ファイルを追加

Feature: this is a test
  this test is to test if this test works right

  Scenario: test runs
    Given: i have a test
    When: i run the test
    Then: i have a working test
4

2 に答える 2

14

問題は機能ファイルにあります。:の後にGivenを使用すると、WhenThenが問題になります。機能ファイルで問題を再現できました。しかし、:を削除し、上記と同じ Runner オプションを使用して機能ファイルを実行すると、不足しているステップ定義を実装するための正規表現が得られました。

PS IntelliJ を使用していますが、違いはないと思います。

  Feature: this is a test
  this test is to test if this test works right

  Scenario: test runs # src/test/resources/Test.feature:4
    Given i have a test
    When i run the test
    Then i have a working test

以下は私が得たものです:

Testing started at 19:12 ...

Undefined step: Given  i have a test

1 Scenarios (1 undefined)
3 Steps (3 undefined)
0m0.000s

Undefined step: When  i run the test

You can implement missing steps with the snippets below:
@Given("^i have a test$")

public void i_have_a_test() throws Throwable {
    // Write code here that turns the phrase above into concrete actions
    throw new PendingException();
}

@When("^i run the test$")
public void i_run_the_test() throws Throwable {
    // Write code here that turns the phrase above into concrete actions
    throw new PendingException();
}

@Then("^i have a working test$")
public void i_have_a_working_test() throws Throwable {
    // Write code here that turns the phrase above into concrete actions
    throw new PendingException();
}


Undefined step: Then  i have a working test

1 scenario (0 passed)
3 steps (0 passed)
Process finished with exit code 0
于 2015-02-14T19:23:18.627 に答える