2012-12-18 9 views
17

Ich versuche, einen Komponententest mit SpringJUnit4ClassRunner zu erstellen, aber jedes Mal, wenn ich den Test ausführe, heißt es, dass SpringJUnit4ClassRunner mit mvn install nicht gefunden werden kann.SpringJUnit4ClassRunner-Klasse nicht gefunden

\src\test\java\com\jr\freedom\util\JsonParserUtilTest.java:11: cannot find symbol 
[ERROR] symbol: class SpringJUnit4ClassRunner 
[ERROR] -> [Help 1] 

hier ist mein Code

@RunWith(SpringJUnit4ClassRunner.class) 
public class JsonParserUtilTest { 

    private String jsonUser = "{ \"username\":\"jono111\",\"emailAddress\":\"[email protected]\", \"password\":\"12345678\",\"firstName\":\"jono\", \"surname\":\"richy\", \"country\":\"united kingdom\",\"bio\":\"Bio stuff goes here about the user. where he comes from etc etc. all is well. lets go go go\" }"; 

    @Test 
    public void testToJsonObject() { 

     User user = new User(); 
     user.setBio("bio mate"); 
     user.setCountry("uk"); 
     user.setEmailAddress("[email protected]"); 
     user.setFirstName("jono"); 
     user.setPassword("passwordfdsadsa"); 
     user.setUsername("crazy8"); 
     JSONObject jsonUser = JsonPojo.toJsonObject(user); 
     assertNotNull(jsonUser); 
     assertNotNull(jsonUser.keys()); 
     System.out.println(jsonUser); 

    } 

    @Test 
    public void testToObject(){ 
     JSONObject jsonUser = JSONObject.fromObject(jsonUser); 
    } 

Hier meine POM-Datei ist:

<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>FreedomSpring</groupId> 
    <artifactId>FreedomSpring</artifactId> 
    <packaging>war</packaging> 
    <version>0.0.1-SNAPSHOT</version> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>3.0</version> 
       <configuration> 
        <source>1.5</source> 
        <target>1.5</target> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-war-plugin</artifactId> 
       <version>2.3</version> 
       <configuration> 
        <!-- specifiy which directory within the project hierarchy will be considered 
         as the root directory from the generated war file --> 
        <warSourceDirectory>WebContent</warSourceDirectory> 
        <webXml>src\main\webapp\WEB-INF\web.xml</webXml> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
    <!-- Dependencies below for spring, hibernate, json etc --> 
    <dependencies> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-webmvc</artifactId> 
      <version>3.1.2.RELEASE</version> 
     </dependency> 
     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>4.10</version> 
     </dependency> 
     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>servlet-api</artifactId> 
      <version>2.5</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>javax.validation</groupId> 
      <artifactId>validation-api</artifactId> 
      <version>1.0.0.GA</version> 
     </dependency> 
     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>jstl</artifactId> 
      <version>1.2</version> 
     </dependency> 
     <dependency> 
      <groupId>net.sf.json-lib</groupId> 
      <artifactId>json-lib</artifactId> 
      <version>2.4</version> 
      <classifier>jdk15</classifier> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-core</artifactId> 
      <version>4.1.7.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>log4j</groupId> 
      <artifactId>log4j</artifactId> 
      <version>1.2.17</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-tx</artifactId> 
      <version>3.1.2.RELEASE</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-test</artifactId> 
      <version>3.1.2.RELEASE</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-beans</artifactId> 
      <version>3.1.2.RELEASE</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-mock</artifactId> 
      <version>2.0.8</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-core</artifactId> 
      <version>3.1.2.RELEASE</version> 
     </dependency> 
     <dependency> 
      <groupId>javax</groupId> 
      <artifactId>javaee-api</artifactId> 
      <version>6.0</version> 
     </dependency> 
     <dependency> 
      <groupId>org.mockito</groupId> 
      <artifactId>mockito-all</artifactId> 
      <version>1.9.0</version> 
     </dependency> 
     <dependency> 
      <groupId>mysql</groupId> 
      <artifactId>mysql-connector-java</artifactId> 
      <version>5.1.21</version> 
     </dependency> 
    </dependencies> 


</project> 

i Springsource Tool Anzug IDE bin mit diesem Spring MVC App zu entwickeln und auf dem IDE hebt es SpringJUnit4ClassRunner als ein Fehler, der sagt, dass es nicht aufgelöst werden kann, obwohl ich alle notwendigen Abhängigkeiten auf meiner Pom-Datei eingeschlossen habe.

Dank

+1

Sie Prüfumfang sollte hinzufügen zu deinen Test-Abhängigkeiten, dh "junit", "Frühling-Test", "Mockito-all", usw. ... Ich denke nicht, dass das dein Problem jedoch lösen wird. – Jonathan

Antwort

28

heruntergeladen ich Ihren Code und bekam es vor Ort arbeiten, solange ich die entsprechenden Import-Anweisungen enthalten:

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

Vielleicht sind Sie eine Import irgendwo fehlt.

+1

Das hat den Trick gemacht. Ich nahm immer an, dass Eclipse automatisch Importe für mich hinzufügt! – jonney

+1

Kein Problem, froh, dass ich helfen konnte. – Jonathan

2

FYI, Fügen Sie diese in Ihrem pom.xml

<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-test</artifactId> 
    <scope>test</scope> 
</dependency> 
2

ich diesen durch

festen
  • lösche meine lokale Maven-Repo (~/.m2/repository) und
  • in Eclipse einen neuen Build zwingen (Project-> Sauber ...)

Sourced from the appfuse forums

+0

Danke! Einzige Sache, die für mich funktionierte –

1

Wenn Sie Linux verwenden, öffnen Sie das Terminal und führen Sie den folgenden Befehl aus. Vergessen Sie nicht, den Benutzer im Ort hinzufügen, wo die "user-name" ist

cd /home/you-user/.m2/repository/ sudo rm -r junit