3

フォルダー内のすべてのキュウリ テスト (機能、実装) を実行するように ant に指示するにはどうすればよいですか?

この例を使用して立ち往生しています

<target name="runcukes" depends="compile-test">
        <mkdir dir="target/cucumber-junit-report"/>
        <java classname="cucumber.cli.Main" fork="true" failonerror="false" resultproperty="cucumber.exitstatus">
            <classpath refid="classpath"/>
            <arg value="--format"/>
            <arg value="junit:target/cucumber-junit-report/allcukes.xml"/>
            <arg value="--format"/>
            <arg value="pretty"/>
            <arg value="--format"/>
            <arg value="html:target/cucumber-html-report"/>
            <arg value="--glue"/>
            <arg value="cucumber.examples.java.helloworld"/>
            <arg value="src/test/resources"/>
        </java>

        <junitreport todir="target/cucumber-junit-report">
            <fileset dir="target/cucumber-junit-report">
                <include name="allcukes.xml"/>
            </fileset>
            <report format="frames" todir="target/cucumber-junit-report"/>
        </junitreport>

        <fail message="Cucumber failed">
            <condition>
                <not>
                    <equals arg1="${cucumber.exitstatus}" arg2="0"/>
                </not>
            </condition>
        </fail>
    </target>
4

3 に答える 3

6

使用法: java cucumber.cli.Main [オプション] [ [FILE|DIR][:LINE[:LINE]*] ]+

オプション:

-g, --glue PATH Where glue code (step definitions and hooks) is loaded from.
-f, --format FORMAT[:OUT] How to format results. Goes to STDOUT unless OUT is specified.
                                Available formats: junit, html, pretty, progress, json, json-pretty.
-t, --tags TAG_EXPRESSION Only run scenarios tagged with tags matching TAG_EXPRESSION.
-n, --name REGEXP Only run scenarios whose names match REGEXP.
-d, --dry-run Skip execution of glue code.
-m, --monochrome Don't colour terminal output.
    --dotcucumber Where to write out runtime information.
-v, --version Print version.
-h, --help You're looking at it.

<arg value="src/test/resources"/>あなたの場合、実行したいディレクトリを変更してください。複数の個別のファイルとディレクトリをスペースで区切って指定できることに注意してください。

于 2012-07-14T22:14:59.413 に答える
1

私も同じ問題に直面し、パッケージ名が「cucumber.examples.java.helloworld」の場合のようにトップパッケージ名を宣言することで解決しましたこのようにキュウリのみを宣言するだけです

 <arg value="--glue"/>
 <arg value="cucumber"/>

あなたの蟻の仕事で。それは私の終わりに働いています。

于 2014-04-11T07:52:43.310 に答える
0

githubのサンプルと一緒に提供されているビルドファイルを使用する代わりに、独自のビルドファイルを作成できます。

antのJunitタスクを使用して、antからJunitテストファイルを実行してみてください。「@Cucumber.Options」アノテーションの「format」を設定して、機能のあるディレクトリを指すようにします。

Junitテストを実行するには、ビルドファイルに次のターゲットを追加します。

<junit printsummary="yes" failureproperty="junit.failure">

<classpath refid="id_of_the_path_to_find_JARS/.class files"></classpath>

<test name="com.example.YourTestClass" haltonfailure="no" outfile="result" >
<formatter type="plain"/>
<formatter type="xml"/>
</test>

</junit>

で指定されたJuintテスト<test name="com.example.YourTestClass" haltonfailure="no" outfile="result" >が実行されます。YourTestClass.javaは次のようになります...

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

@RunWith(Cucumber.class)

@Cucumber.Options(format = {"html:target/cucumber-html","junit:target/cucumber-junit/Webpage.xml"},features = "src/test/features")
public class YourTestClass {

}

src / test / featuresに保持されているすべての機能ファイルは、ビルドファイルの実行中に実行されます

于 2012-12-26T09:53:28.993 に答える