2016-05-07 7 views
0

MavenでJavaベースの設定を使用していますが、エラーを特定するためにセットアップを最小限に抑えましたが、 @EnableWebMvcアノテーション(私は明らかに必要です)は、テストを開始して渡すことができます。最も簡単なspring-mvcテストのセットアップが開始されない

ExampleTest.java

package co.farel.server.services.test; 

import static org.junit.Assert.assertEquals; 

import org.junit.Test; 
import org.junit.runner.RunWith; 
import org.springframework.test.context.ContextConfiguration; 
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; 

import co.farel.server.services.test.config.WebConfig; 

@RunWith(SpringJUnit4ClassRunner.class) 
@ContextConfiguration(classes={WebConfig.class}) 
public class ExampleTest { 

    @Test 
    public void test() { 
     assertEquals(true, true); 
    } 

} 

WebConfig.java

package co.farel.server.services.test.config; 

import org.springframework.context.annotation.Configuration; 
import org.springframework.web.servlet.config.annotation.EnableWebMvc; 
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; 

@EnableWebMvc 
@Configuration 
public class WebConfig extends WebMvcConfigurerAdapter { 

} 

のpom.xml

<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/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.mikolaj.nalecz.testy</groupId> 
    <artifactId>junit-spring-hibernate</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 

    <dependencies> 
     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>4.12</version> 
     </dependency> 

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

     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-webmvc</artifactId> 
      <version>4.2.5.RELEASE</version> 
     </dependency> 
    </dependencies> 

</project> 

私がテストを実行しようとすると、私が手:

Caused by: org.springframework.beans.factory.BeanDefinitionStoreException: Failed to process import candidates for configuration class [co.farel.server.services.test.config.WebConfig]; nested exception is java.lang.IllegalStateException: Failed to introspect annotated methods on class org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport 

スタックトレース全体http://pastebin.com/0DxXAS0P

答えて

0

問題はおそらく、コンテナが実行時にJavaサーブレットクラスを提供するという事実に起因すると思われますが、テスト中にJARを提供する必要があります。

追加した後:

<dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>javax.servlet-api</artifactId> 
     <version>3.0.1</version> 
     <scope>provided</scope> 
    </dependency> 

をのpom.xmlとするには:私のExampleTest.javaに

@WebAppConfiguration 

を、すべてが素晴らしい作品。

0

無効なimportステートメントがプロジェクトに含まれているため、このエラーが発生しています。

ほとんどの場合、無効な importは以下の通りである

:あなたに以下の依存関係を追加

import org.springframework.context.annotation.Configuration; 

てみPOM:

<dependency> 
    <groupId>org.springframework</groupId> 
    <artifactId>spring-context</artifactId> 
    <version>4.2.5.RELEASE</version> 
</dependency> 

<dependency> 
    <groupId>org.springframework</groupId> 
    <artifactId>spring-core</artifactId> 
    <version>4.2.5.RELEASE</version> 
</dependency> 
+0

私のテスト環境のフルバージョンでは、これらのインポートがありますが、問題は解決しません。 – Noozen

0

あなたのテストクラスに注釈 @WebAppConfigurationを追加してください。

希望すると便利です

ありがとう

+0

残念ながら、私は前にそれを試しましたが、結果には影響しません。 – Noozen

関連する問題