0

Maven プロジェクトを使用した JUnit テストのコンパイルと実行に問題があります。

pom.xml にこれらの行を追加して、surfire プラグインを設定しました。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.16</version>
    <configuration>
        <encoding>UTF-8</encoding>                    
        <skipTests>false</skipTests>                                 
        <includes>
            <include>**/*.java</include>
        </includes>
    </configuration>

    <executions>
        <execution>
            <id>unit-test</id>
            <phase>test</phase>
            <goals>
                <goal>test</goal>
            </goals>
            <configuration>
                <skip>false</skip>
                <includes>
                    <include>**/Client*.java</include>
                </includes>   
            </configuration>
        </execution>
    </executions>
</plugin>

テスト クラスはパス「src/test/java//」の下にあります。

コマンドを実行すると、次のmvn test出力が得られます。

[INFO] Storing buildScmBranch: trunk
[INFO] [resources:resources {execution: default-resources}]
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 10 resources
[INFO] [cxf-codegen:wsdl2java {execution: generate-sources}]
[INFO] [compiler:compile {execution: default-compile}]
[INFO] Nothing to compile - all classes are up to date
[INFO] [resources:testResources {execution: default-testResources}]
[INFO] Not copying test resources
[INFO] [compiler:testCompile {execution: default-testCompile}]
[INFO] Not compiling test sources
[INFO] [surefire:test {execution: default-test}]
[INFO] Tests are skipped.
[INFO] [surefire:test {execution: unit-test}]
[INFO] No tests to run.
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] No tests were executed!  (Set -DfailIfNoTests=false to ignore this error.)

どこが間違っているのか本当にわかりません。

EDIT: テストクラスもコンパイルされていないことに気付いたので、pom構成を次のように変更しました:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.0.2</version>
    <configuration>
        <source>1.6</source>
        <target>1.6</target>
    </configuration>
    <executions>
        <execution>
            <id>default-testCompile</id>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
                <skip>false</skip>
                <additionalClasspathElements>
                    <additionalClasspathElement>${basedir}/target/*.jar</additionalClasspathElement>
                </additionalClasspathElements>
                <directory>${basedir}/src/test/java</directory>
                <includes>
                    <include>**/*.*</include>
                </includes> 
            </configuration>
        </execution>
    </executions>
</plugin>

このようにして、maven はテスト ソースを検討してコンパイルしようとし始めます。cxf-codegen-plugin でコードを生成したためにコンパイルに失敗したとしても、そのテスト コンパイルはそれを認識していないようです。

4

3 に答える 3