(Cucumber-JVM を使用していると仮定しています)
SpringJUnit4ClassRunnerを使用する代わりに、代わりにCucumberランナーを使用する必要があります。
@RunWith(Cucumber.class)
これを使用するには、次の依存関係が必要です。
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-java</artifactId>
<version>${info.cukes.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-junit</artifactId>
<version>${info.cukes.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-spring</artifactId>
<version>${info.cukes.version}</version>
<scope>test</scope>
</dependency>
これにより、クラス パスでcucumber.xmlが検索されます。この XML は単なる Spring Bean 構成 XML です。私のものは非常に簡単で、次のものが含まれています。
<context:component-scan base-package="cucumber.runtime.java.spring"/>
<context:annotation-config/>
<!-- wire beans required for testing -->
<import resource="classpath*:/context.xml"/>
テストを実行すると、Spring がcucumber.xmlをロードしてからcontext.xmlをインポートすることがわかります。