2016-11-15 6 views
0

私はカスタマイズされたEclipse Studioプロジェクトを持っています。ユニットテストのために我々は、下のテストファイルを作成している - 今、私が実行したときにカスタマイズされたフォルダ構造でテストを実行するためのsurefireプラグインの使用方法

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<project> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.demo.test</groupId> 
    <artifactId>demo</artifactId> 
    <version>1.0.0</version> 
    <packaging>jar</packaging> 
    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-surefire-plugin</artifactId> 
       <version>2.19.1</version> 
      </plugin> 
     </plugins> 
    </build> 
</project> 

-

TestJavaSrc/demoTest.java 

今、このTestJavaSrcフォルダはのpom.xml のと同じレベル以下のpom.xmlがある上にありますこのプロジェクトはmvnテストとして、テストファイルを見つけることができません。 そしてまた、私は、コマンドラインで次のコマンドを実行します - それは私がまた

Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.19.1:test 
(default-test) on project demo: No tests were executed! 
(Set -DfailIfNoTests=false to ignore this error.) -> [Help 1] 

をエラー - 与え

mvn "-Dtest=TestJavaSrc/DemoTest.java" test 

、私は私のクラスパス

でJUnit4を持っている私が行方不明です何があります?

答えて

1

は、Javaで書かれたユニットテストはsrc/test/javaの下に配置する必要があります:

srcディレクトリには、プロジェクト、サイトなどを構築するためのすべてのソースが含まれています。主なビルド成果物の場合はmain、ユニットテストコードとリソースの場合はtest、サイトなどの各タイプのサブディレクトリが含まれています。

このように、Surefire Pluginはそのフォルダに正確に含まれるテストを実行します。これはtestSourceDirectoryパラメータで設定できます。このディレクトリは、すべてのテストを含む基本ソースディレクトリです。つまり、そのベースディレクトリがsomedirで、DemoTest.javaというJavaクラスがあり、パッケージfoo.barにあると宣言されている場合、ディスク上のファイルはsomedir/foo/bar/DemoTest.javaになければなりません。

これはあなたが(誤って)使用しているパラメータtestが入力する場所です。実行するJavaクラスをその名前でのみ選択します。パッケージ宣言やディスク上のファイルの場所ではありません。

私はあなたが標準ディレクトリにテストクラスを配置することをお勧めしますが、あなたは本当にこれを実行したい場合は、複数のオプションがあります。

  1. あなたは、単一のテストソースディレクトリを持つようにしたい場合は、Mavenプロジェクトのベースディレクトリに配置され、TestJavaSrcである、そしてあなたがあなたのPOMでそれを設定できます。あなただけであることが唯一のテストのための特別なディレクトリを持つようにしたい場合は

    <build> 
        <testSourceDirectory>${project.basedir}/TestJavaSrc</testSourceDirectory> 
    </build> 
    
  2. あなたがtを保つと言います両方のアプローチはdemoTest.javaファイルが、あることを意味していること

    <plugin> 
        <groupId>org.codehaus.mojo</groupId> 
        <artifactId>build-helper-maven-plugin</artifactId> 
        <version>1.12</version> 
        <executions> 
        <execution> 
         <id>add-test-source</id> 
         <goals> 
         <goal>add-test-source</goal> 
         </goals> 
         <configuration> 
         <sources> 
          <source>TestJavaSrc</source> 
         </sources> 
         </configuration> 
        </execution> 
        </executions> 
    </plugin> 
    

注:彼は、あなたがadd-test-sourceビルドヘルパーMavenのプラグインの目標を使用することができ、src/test/javaデフォルトが、さらにこの新しいソースディレクトリを検討したいですそのフォルダの直下にあるファイルはデフォルトのパッケージに含まれるため、packageという宣言は含まれていてはいけません。

+0

こちらをご覧ください。追加情報ありがとうございます:) – Disha

1

あなたがテストのためにすべてのsrc/test/javaを使用していないと仮定すると、あなたは例えば、別のディレクトリを使用するようにビルドを指示することができますMavenのstandard directory layout

<build>   
    ... 
    <testSourceDirectory>${project.basedir}/TestJavaSrc</testSourceDirectory> 
    ... 
</build> 
関連する問題