0

私はここでかなり新しいです、そして私は尋ねることに頼りたくありませんでした、しかし私は選択の余地がなかったようです。

私は自動化テストを書いていますが、少し前にSpringとDependancyInjectionとそのすべての利点を発見しました。次に、次のように、プライマリデータプロバイダーとしてテストで使用しました(同僚の1人がこの使用法に同意していませんが、理由はわかりません)。

/src/test/java/automation/dataリスト:

@ContextConfiguration("classpath:/spring/surveyFlows.xml")
public class SurveyDataProvider
{

    @Autowired
    private List<Survey> allSurveys;

    public List<Survey> getAllSurveys()
    {
        return allSurveys;
    }
    public SurveyDataProvider()
    {
        TestContextManager testContextManager = new TestContextManager(getClass());
        try
        {
            testContextManager.prepareTestInstance(this);
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }
}

もちろん、XMLは内部にあり /src/test/resources/spring/ます。

面白いことに、これはIntelliJで実行すると正常に機能しますがmaven、実行を拒否するため、ひどいエラーが発生します。

原因:org.springframework.beans.factory.BeanDefinitionStoreException:クラスパスリソース[spring/surveyFlows.xml]からXMLドキュメントを解析するIOException。ネストされた例外はjava.io.FileNotFoundExceptionです:クラスパスリソース[spring/surveyFlows.xml]が存在しないため開くことができません

私は何時間もインターネットを見て回り、あらゆる種類のことを試みてきました。

  • リソースをに移動する/src/main
  • リソースディレクトリをpom.xml

...サイコロはありません。

だから私はここでちょっと立ち往生していて、ハードコードされたパラメータを使って古いJavaスタイルに戻すことを真剣に考えています。

誰かが手がかりを持っている場合...

4

2 に答える 2

2

これは私たちのために働いたものです。別の方法を見つけたら教えてください。

<build>
    <!--Your other configuration -->

    <testResources>
        <!-- Not sure if including resource from main is needed -->
        <testResource>
            <directory>${project.basedir}/src/main/resources</directory>
        </testResource>

        <testResource>
            <directory>${project.basedir}/src/test/resources</directory>
        </testResource>
    </testResources>
</build>
于 2013-03-03T18:03:16.200 に答える
1

私は春のテストクラスとjunitを扱っています。pom.xml に正しい依存関係を入れていることを確認してください。

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-test</artifactId>
    <version>3.2.1.RELEASE</version>
</dependency>

テストに次の注釈を付けます。

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:test-context.xml")

私のtest-context.xmlは次の場所にありました:src/test/resources/test-context.xml

それでおしまい!この構成で動作します!

于 2013-03-03T19:08:25.177 に答える