3

Windows コマンド ライン (Windows 10) から Cucumber cli を実行しようとしています。これまでのところすべて順調です。*.feature ファイルを正しい場所からロードして、どのメソッドを実装する必要があるかを教えてくれます。クラスメソッドに @Give、@When、@Then 表記を使用してクラスを作成し、クラスをきれいにコンパイルしました。

.class ファイルは、私の Eclipse プロジェクトの \bin ディレクトリの com\company\automation\ サブディレクトリにあり、すべてのサポート jar は C:\java にあります。.bat ファイルで次の構文を使用して実行しようとしましたが、Cucumber はメソッドが見つからないと報告し、これらの「不足している手順」を記述するように求めます。

私が使用しているコマンドは次のとおりです。

java -classpath "C:\java\*";"C:\Users\Mark\workspace\Company Automation\bin\*" cucumber.api.cli.Main --glue "C:\Users\Mark\workspace\Company Automation\bin\com\company\automation" "C:\Users\Mark\workspace\Company Automation\Features"

「不足している手順」の私の実装は次のとおりです。

package com.company.automation;

import cucumber.api.PendingException;
import cucumber.api.java.en.Given;
import cucumber.api.java.en.Then;
import cucumber.api.java.en.When;

public class CucumberImplementation {

    @Given("^I am a visitor$")
    public void i_am_a_visitor() throws Throwable {
        // Write code here that turns the phrase above into concrete actions
        throw new PendingException();
    }

    @When("^I visit \"([^\"]*)\"$")
    public void i_visit(String arg1) throws Throwable {
        // Write code here that turns the phrase above into concrete actions
        throw new PendingException();
    }

    @Then("^there must be a \"([^\"]*)\" element$")
    public void there_must_be_a_element(String arg1) throws Throwable {
        // Write code here that turns the phrase above into concrete actions
        throw new PendingException();
    }

    @Then("^the \"([^\"]*)\" element must contain a \"([^\"]*)\" element$")
    public void the_element_must_contain_a_element(String arg1, String arg2) throws Throwable {
        // Write code here that turns the phrase above into concrete actions
        throw new PendingException();
    }

    @Then("^the \"([^\"]*)\" element must contain a \"([^\"]*)\" link$")
    public void the_element_must_contain_a_link(String arg1, String arg2) throws Throwable {
        // Write code here that turns the phrase above into concrete actions
        throw new PendingException();
    }

    @Then("^there must be a \"([^\"]*)\" element after the \"([^\"]*)\" element$")
    public void there_must_be_a_element_after_the_element(String arg1, String arg2) throws Throwable {
        // Write code here that turns the phrase above into concrete actions
        throw new PendingException();
    }

}

--glue オプションについて、classpath:com.company.automation、classpath:com.company.automation.CucumberImplementation.class など、あらゆる種類の異なるパス形式を試しましたが、バックスラッシュとスラッシュを使用しました。--glue オプションの引数に使用する構文に関係なく、Cucumber はそれを完全に無視し、最初のステップで PendingException をスローすることさえないようです。--glue オプションへの引数が無効なパスであると不平を言うこともありません。

ベースとして cucumber-core-1.2.4.jar を使用します。

4

1 に答える 1

3

同じ問題がありました。

これが私がそれを解決した方法です(上記のコメントに感謝します):

--glue com.test.app

「com.test.app」は、私のステップ定義ファイルのパッケージです。

于 2015-09-29T14:41:40.000 に答える