2012-02-23 18 views
8

私は現在、キュウリの試験に春を統合しようとしています。キュウリに春を組み込む方法

http://www.zsoltfabok.com/blog/2012/01/cucumber-jvm-di/

が、コードが呼び出されていない:に概説ように私は、カスタムSpringFactoryを持っています。私のテストでファクトリーを「フックアップ」する最良の方法は何ですか?

[削除された回答のコメントからの明確化:主な問題は、私のテストでは主ランナー、つまり@RunWith(Cucumber.class)としてCucumberがあるため、ここでSpringJUnit4ClassRunnerを使用できないということです。これは上記のリンクで説明されていますが、cucumber.xmlがどのように読み取られるかについての記述はありません。実際に追加することにより、さらに少し持っている:

<dependency> 
     <groupId>info.cukes</groupId> 
     <artifactId>cucumber-spring</artifactId> 
     <version>1.0.0.RC15</version> 
    </dependency> 

をしかし、私はない変数を@Autowiredいる

更新] ....私は新しいSpringFactoryを追加したが、それはXMLファイルを読み込むイマイチテストがキュウリによって実行されているときに注入されます。

他に誰かがこの問題を抱えていますか?

答えて

5

「キュウリの春の統合」をすばやく検索すると、herehereが表示されます。 cuke4dukeを使用している場合、これははるかに簡単な方法のように見えます。

サンプルでは、​​デフォルトでcuke4dukeがクラスパスのベースからcucumber.xmlをロードするように見えているようです。これは、@StepDefinitionで注釈付けされたクラスに対して、component-scanを含まなければならないSpring構成ファイルです。

SpringFactoryを提供する必要はありません。@RunWithアノテーションを使用する必要はなく、Springの設定と1つ以上のjvmプロパティを提供するだけです。

+0

私の解決策が働いているいくつかの追加ポイントを次に示します。1. picocontainer maven依存関係を使用しないでください。2.コンポーネントスキャンのStepsクラスで最新の@StepDefAnnotationを使用してください。 – Reimeus

1

私はあなたの質問を見ました。ほとんどの場合、cucumber-springモジュールの依存関係はありませんでした。私はリポジトリを更新したので、すべての依存関係はうまくいくはずです(私はアイビーを使用しています)。

9

更新:cuke4dukeプロジェクトは廃止され、Cucumber-JVMに置き換えられました。

私も同じ問題がありました。根本的な原因は、cucumber.xmlがcucumber-spring-1.1.5.jarのSpringFactoryによって読み取られていないことでした。スプリングDIが黙って失敗し、NPEが発生しました。 submission 448以降、Cucumber SpringFactoryはcucumber.xmlをロードしなくなり、すべてのステップ定義クラスに@ContextConfiguration("classpath*:cucumber.xml")を含める必要があります。

-1

特定のバージョンのSpringは、Cucumber-SpringとCucumber-JVMの特定のバージョンでのみ動作するという問題があります。勝利の組み合わせを見つけることは、瓶のバージョンで2日を要することがあります。したがって、動作する環境を得るまでこれらのjarファイルを調整する必要があるため、動作することがわかっている簡単な注入を使用する「Hello World」BDDシナリオから始めます。

最も簡単な方法は、Springの最新バージョンとCucumber-Springの最新バージョンを一致させることです。 Springの新しいバージョンがより良くサポートされています。単にSpringをアップグレードすることはできない場合は、Cucumber-Springのさまざまなバージョンと作業しているSpringのバージョン間の依存関係を記述したWebサイトを使用してください。

Springの旧バージョン(悪い考えでは、変更の苦痛はさらに深刻になります)を使用したい場合は、JBehaveをBDDテストに使用する方法もあります。

関連する問題