2012-11-09 3 views
0

되고 있지 다음의 pom.xml 확실한 설정 :없음 봄 테스트 내가있어 실행

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <version>2.9</version> 
    <configuration> 
     <printSummary>true</printSummary> 
     <redirectTestOutputToFile>true</redirectTestOutputToFile> 

     <includes> 
      <include>**/test/resources/META-INF/spring/test-database.properties</include> 
      <include>**/src/test/java/*.java</include> 
     </includes> 

     <excludes> 
      <exclude>**/*_Roo_*</exclude> 
      <exclude>**/database-*.properties</exclude> 
     </excludes> 

    </configuration> 
</plugin> 

그리고 다음 applicationContext.xml :

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
     xmlns:aop="http://www.springframework.org/schema/aop" 
     xmlns:context="http://www.springframework.org/schema/context" 
     xmlns:jee="http://www.springframework.org/schema/jee" 
     xmlns:tx="http://www.springframework.org/schema/tx" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://www.springframework.org/schema/aop 
          http://www.springframework.org/schema/aop/spring-aop-3.1.xsd 
          http://www.springframework.org/schema/beans 
          http://www.springframework.org/schema/beans/spring-beans-3.1.xsd 
          http://www.springframework.org/schema/context 
          http://www.springframework.org/schema/context/spring-context-3.1.xsd 
          http://www.springframework.org/schema/jee 
          http://www.springframework.org/schema/jee/spring-jee-3.1.xsd 
          http://www.springframework.org/schema/tx 
          http://www.springframework.org/schema/tx/spring-tx-3.1.xsd"> 

<!-- FOR UNIT TESTING ONLY --> 

    <!-- 
     This will automatically locate any and all property files you have 
     within your classpath, provided they fall under the META-INF/spring 
     directory. The located property files are parsed and their values can 
     then be used within application context files in the form of 
     ${propertyKey}. 
    --> 

    <context:property-placeholder location="classpath*:META-INF/spring/test-database.properties"/> 

    <bean id="externalProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean"> 
     <property name="ignoreResourceNotFound"><value>true</value></property> 
     <property name="locations"> 
      <list> 
      <value>classpath*:META-INF/conf/configuration.properties</value> 
      </list> 
     </property> 
    </bean> 

    <!-- 
     Turn on AspectJ @Configurable support. As a result, any time you 
     instantiate an object, Spring will attempt to perform dependency 
     injection on that object. This occurs for instantiation via the "new" 
     keyword, as well as via reflection. This is possible because AspectJ 
     is used to "weave" Roo-based applications at compile time. In effect 
     this feature allows dependency injection of any object at all in your 
     system, which is a very useful feature (without @Configurable you'd 
     only be able to dependency inject objects acquired from Spring or 
     subsequently presented to a specific Spring dependency injection 
     method). Roo applications use this useful feature in a number of 
     areas, such as @PersistenceContext injection into entities. 
    --> 
    <context:spring-configured/> 
    <!-- 
     This declaration will cause Spring to locate every @Component, 
     @Repository and @Service in your application. In practical terms this 
     allows you to write a POJO and then simply annotate the new POJO as an 
     @Service and Spring will automatically detect, instantiate and 
     dependency inject your service at startup time. Importantly, you can 
     then also have your new service injected into any other class that 
     requires it simply by declaring a field for your service inside the 
     relying class and Spring will inject it. Note that two exclude filters 
     are declared. The first ensures that Spring doesn't spend time 
     introspecting Roo-specific ITD aspects. The second ensures Roo doesn't 
     instantiate your @Controller classes, as these should be instantiated 
     by a web tier application context. Refer to web.xml for more details 
     about the web tier application context setup services. 

     Furthermore, this turns on @Autowired, @PostConstruct etc support. These 
     annotations allow you to use common Spring and Java Enterprise Edition 
     annotations in your classes without needing to do any special configuration. 
     The most commonly used annotation is @Autowired, which instructs Spring to 
     dependency inject an object into your class. 
    --> 

    <context:component-scan base-package="com.mms.pone.portal"> 
     <context:exclude-filter expression=".*_Roo_.*" type="regex"/> 
     <context:exclude-filter expression="org.springframework.stereotype.Controller" type="annotation"/> 
    </context:component-scan> 

    <!--<bean class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" id="dataSource"> 
     <property name="driverClassName" value="${database.driverClassName}"/> 
     <property name="url" value="${database.url}"/> 
     <property name="username" value="${database.username}"/> 
     <property name="password" value="${database.password}"/> 
     <property name="testOnBorrow" value="true"/> 
     <property name="testOnReturn" value="true"/> 
     <property name="testWhileIdle" value="true"/> 
     <property name="timeBetweenEvictionRunsMillis" value="1800000"/> 
     <property name="numTestsPerEvictionRun" value="3"/> 
     <property name="minEvictableIdleTimeMillis" value="1800000"/> 
     <property name="validationQuery" value="SELECT 1"/> 
     <property name="initialSize" value="5" /> 
     <property name="maxActive" value="25" /> 
    </bean> --> 

    <bean class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" id="dataSource"> 
     <property name="driverClassName" value="${database.driverClassName}"/> 
     <property name="url" value="${database.url}"/> 
     <property name="username" value="${database.username}"/> 
     <property name="password" value="${database.password}"/> 
     <property name="testOnBorrow" value="true"/> 
     <property name="testOnReturn" value="true"/> 
     <property name="testWhileIdle" value="true"/> 
     <property name="timeBetweenEvictionRunsMillis" value="1800000"/> 
     <property name="numTestsPerEvictionRun" value="3"/> 
     <property name="minEvictableIdleTimeMillis" value="1800000"/> 
    </bean> 

    <bean class="org.springframework.orm.jpa.JpaTransactionManager" id="transactionManager"> 
     <property name="entityManagerFactory" ref="entityManagerFactory"/> 
    </bean> 

    <tx:annotation-driven mode="aspectj" transaction-manager="transactionManager"/> 

    <bean class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" id="entityManagerFactory"> 
     <property name="persistenceUnitName" value="persistenceUnit"/> 
     <property name="dataSource" ref="dataSource"/> 

     <property name="persistenceXmlLocation" value="classpath*:META-INF/test-persistence.xml" /> 
    </bean>  
</beans> 

모든 것이 바로 보이지만 때 나는 mvn을 설치하거나 mvn 테스트를 실행하고, 파일을 컴파일하고, 오류를 보여주지 않으며 요약을 보여준다. 테스트 실행 : 0

어떤 도움이 크게 환영 될 것이다. .

+1

'includes/excludes' 태그는 테스트 클래스가있는 파일의 패턴을 설명해야합니다. '.properties' 파일은 ** 존재하지 않아야합니다 **. 여기를보십시오 : http://maven.apache.org/plugins/maven-surefire-plugin/examples/inclusion-exclusion.html – maba

+0

나는 그것을 읽었다. 내가 얻는 문제는 test-database.properties를 포함하지 않고, mvn clean install을 실행할 때, Hypersonic 대신 MySql 용으로 구성된 database.properties 파일을 사용할 것입니다 (테스트를 위해 하이퍼 소닉을 사용하고, 생산을 위해 mysql을 사용합니다) – Eugen

+0

거기에 **/src/test/java/*. java 줄을 포함 할 필요가 없습니다. src/test/java에있는 경우 maven이 자동으로 테스트 파일을 실행합니다. –

답변

0

마침내이 링크를 발견하고 내 persistence.xml과 내 applicationContext.xml에서 이중 특성 선언으로 문제를 발견했습니다. 사람들은 깨끗이 찾고 내 파일을 가지고 있었다 일단 :

applicationContext.xml :

<properties> 
     <property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect" /> 
     <property name="hibernate.hbm2ddl.auto" value="create"/> 
    </properties> 

모든 것이 잘 실행

<bean class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" id="dataSource"> 
     <property name="driverClassName" value="${database.driverClassName}"/> 
     <property name="url" value="${database.url}"/> 
     <property name="username" value="${database.username}"/> 
     <property name="password" value="${database.password}"/> 
     <property name="testOnBorrow" value="false"/> 
     <property name="testOnReturn" value="false"/> 
     <property name="testWhileIdle" value="false"/> 
     <property name="timeBetweenEvictionRunsMillis" value="1800000"/> 
     <property name="numTestsPerEvictionRun" value="3"/> 
     <property name="maxActive" value="1" /> 

     <property name="minEvictableIdleTimeMillis" value="1800000"/> 
    </bean> 

의 persistence.xml.