2016-08-26 18 views
1
package my.helloworld; 

import org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; 
import org.junit.Test; 

public class HomeControllerTest { 

} 

上記は私のテストコードです。この空のコードさえコンパイルされません。以下は私のpom.xmlである:私はmvn jetty:runまたはmvn clean installまたはmvn testを実行したときにmavenはテストケースからパッケージを見つけることができません

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>my.helloworld</groupId> 
    <artifactId>spring-helloworld</artifactId> 
    <packaging>jar</packaging> 
    <version>1.0-SNAPSHOT</version> 
    <name>spring-helloworld</name> 
    <url>http://maven.apache.org</url> 
    <properties> 
    <jdk.version>1.6</jdk.version> 
    <spring.version>3.2.13.RELEASE</spring.version> 
    <jstl.version>1.2</jstl.version> 
    </properties> 

    <dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>3.8.1</version> 
     <scope>test</scope> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-webmvc</artifactId> 
     <version>${spring.version}</version> 
    </dependency> 

    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>jstl</artifactId> 
     <version>${jstl.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>javax.servlet-api</artifactId> 
     <version>3.1.0</version> 
     <scope>provided</scope> 
    </dependency> 
    </dependencies> 

    <build> 
    <plugins> 
     <plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <version>3.3</version> 
    <configuration> 
     <source>${jdk.version}</source> 
     <target>${jdk.version}</target> 
    </configuration> 
     </plugin> 

     <!-- embedded Jetty server, for testing --> 
     <plugin> 
    <groupId>org.eclipse.jetty</groupId> 
    <artifactId>jetty-maven-plugin</artifactId> 
    <version>9.2.11.v20150529</version> 
    <configuration> 
     <scanIntervalSeconds>10</scanIntervalSeconds> 
     <webApp> 
     <contextPath>/spring3</contextPath> 
     </webApp> 
    </configuration> 
     </plugin> 

     <!-- configure Eclipse workspace --> 
     <plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-eclipse-plugin</artifactId> 
    <version>2.9</version> 
    <configuration> 
     <downloadSources>true</downloadSources> 
     <downloadJavadocs>true</downloadJavadocs> 
     <wtpversion>2.0</wtpversion> 
     <wtpContextName>spring3</wtpContextName> 
    </configuration> 
     </plugin> 
    </plugins> 
    </build> 
</project> 

今、私は次のエラーを取得する:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.3:testCompile (default-testCompile) on project spring-helloworld: Compilation failure: Compilation failure: 
[ERROR] /home/kay/Projects/Spring/MVC/HelloWorld/spring-helloworld/src/test/java/my/helloworld/HomeControllerTest.java:[3,1] package org.springframework.test.web.servlet.result.MockMvcResultMatchers does not exist 
[ERROR] /home/kay/Projects/Spring/MVC/HelloWorld/spring-helloworld/src/test/java/my/helloworld/HomeControllerTest.java:[7,17] package org.junit does not exist 
[ERROR] -> [Help 1] 
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. 
[ERROR] Re-run Maven using the -X switch to enable full debug logging. 
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles: 
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException 

以前、それはパッケージORGが見つからなかったというエラーを与えていました。私はここで何が欠けていますか?

答えて

0

あなたがしようとしているクラスorg.springframework.test.web.servlet.result.MockMvcResultMatchersimportは、spring-testモジュールの一部です。これをテストの依存関係として追加します。そうしないと、クラスパス上に存在しないため、コンパイラはそれを見つけることができません。

<dependency> 
    <groupId>org.springframework</groupId> 
    <artifactId>spring-test</artifactId> 
    <version>${spring.version}</version> 
    <scope>test</scope> 
</dependency> 

そして、org。*に由来するものをインポートしないと、コンパイラはパッケージorgを見つけられません。しかし、より正確なことを言えば、コードとエラーメッセージが必要です。

+0

これを追加しましたが、役に立たなかった – Kartik

+0

同じエラーメッセージが表示された場合は、正しく追加しませんでした。申し訳ありませんが、これについてもっと詳しく説明する必要はありません。クラスはSpring 3.2以降であるため、古いバージョンのものはありません。 –

0

<scope>test</scope>を削除してみましたか?

+0

はい、動作しませんでした – Kartik

関連する問題