2014-11-03 5 views
1

나는 봄과 Mockito와 JUnit 테스트를 실행 해요에 속성을 재 작성하지 않고, 나는 주사 다음과 같은 구성으로 콩이 있습니다Maven은 JUnit을/Mockito의 context.xml에

<bean name="roleDefault" id="roleDefault" class="java.lang.String"> 
    <constructor-arg> 
    <value>${database.rule}</value> 
    </constructor-arg> 
</bean> 

그리고 내 치어을. XML은 "desenvolvimento"의 ID를 갖는 프로파일이 구성을 가지고

<database.rule>SET ROLE RO_APP IDENTIFIED BY WEBAPP</database.rule> 

문제는 : 어느 다음 오류 결과 ${database.rule}의 값을 계산하지 않고 이클립스 또는 mvn test 모든 테스트를 실행 :

Caused by: org.h2.jdbc.JdbcSQLException: Syntax error in SQL statement "${database.rule}" [42000-165] 
    at org.h2.message.DbException.getJdbcSQLException(DbException.java:329) 
    at org.h2.message.DbException.get(DbException.java:169) 
    at org.h2.message.DbException.get(DbException.java:146) 
    at org.h2.message.DbException.getSyntaxError(DbException.java:181) 
    at org.h2.jdbc.JdbcConnection.checkRunOver(JdbcConnection.java:1318) 
    at org.h2.jdbc.JdbcConnection.translateSQL(JdbcConnection.java:1271) 
    at org.h2.jdbc.JdbcConnection.translateSQL(JdbcConnection.java:1187) 
    at org.h2.jdbc.JdbcConnection.prepareStatement(JdbcConnection.java:265) 
    at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$1.doPrepare(StatementPreparerImpl.java:98) 
    at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$StatementPreparationTemplate.prepareStatement(StatementPreparerImpl.java:182) 
    ... 75 more 

database.rule의 값을 다시 작성하지 않습니까?

+0

말아야 때문에 ...은'$ {...}'컨텍스트 파일에 봄하지 받는다는에 의해 대체되는 속성 자리 표시 자입니다. –

+0

기본 테스트는 또한'@RunWith (SpringJUnit4ClassRunner.class) '로 주석 처리됩니다. – ViniciusPires

+0

여전히 maven이 물건을 대체하게하지 않습니다. 필자는 sprnig 문서를 강력하게 제안합니다. '$ {...} '자리 표시자를 대체 할 등록 정보 파일을로드하는''를 추가하십시오. –

답변

2

XML 구성 파일의 위치가 pom.xml의 자원 필터에 포함되어 있는지 확인하십시오.

<resource> <directory>src/main/resources</directory> <filtering>true</filtering> <includes> <include>**/*.xml</include> </includes> </resource>

+0

효과가있었습니다. 나는 그것에 대해 완전히 잊었다. .. 고마워! – ViniciusPires