2016-05-03 5 views
1

私はスカラ座やJavaコードの両方を使用していますscalatestケースを持っており、コードのJavaの部品内への呼び出しがありテストしない、メインのリソースを使用して:これは、他の罰金ですリソース

getClass().getResourceAsStream("/dbLocations.properties"); 

をJUnitを使用するコードのセクションがありますが、私はScalatestを使用するためにScalaテストクラスを書き直しています(誰かがJUnitでそれらを書きました)。そして、上記のコードを実行するテストを実行するとロードするプロパティはsrc/メイン /リソースではなく、src/テスト/resourcesです。

設定がありますか?私はMavenを使っています。なぜなら、プロジェクトの大きなJava部分(SBTを使ったMavenを使った開発者の経験があります)だからです。

+0

あなたの質問から、あなたは 'main/resources'フォルダに同様の名前のプロパティファイルがあると思いますか? –

+0

はい、実際には、生産に使用される値が含まれています – ProperBritish

答えて

1

これはMavenの問題であり、ローカルのMavenリポジトリ(ソースがある)の依存関係JARには、その中に生産値があります。私は今のmaven-jarファイル・プラグインを使用して、その依存関係のためのテスト-jarファイルを作成します。

 <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-jar-plugin</artifactId> 
      <executions> 
       <execution> 
        <goals> 
         <goal>test-jar</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 

をしたあと、「テスト」に設定スコープを持つ他のプロジェクトに依存、ので、テスト - などということを含めjarはクラスパス上にのみあり、テストパスをクラスパスに配置することを認識しているので、両方のパスが同時に存在するときにテストリソースが引き込まれ、他の(生産)JARを検出します。

<dependency> 
     <groupId>com.example</groupId> 
     <artifactId>naughty-dependency</artifactId> 
     <version>1.0.5-SNAPSHOT</version> 
     <type>test-jar</type> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>com.example</groupId> 
     <artifactId>naughty-dependency</artifactId> 
     <version>1.0.5-SNAPSHOT</version> 
    </dependency> 

私の心の中で少しハッキリのようですが、それは動作します!

0

私が知ることから、それはそのまま動作するはずです。

pomの設定でテストクラスパスからsrc/test/resourcesフォルダが除外されているかどうか確認するためにmavenファイルを確認しましたか?