Al ejecutar una prueba junit, no puedo obtener el contexto de la aplicación para cargar las propiedades de los archivos de propiedades externas.Propiedades junit/spring no cargadas con el contexto de la aplicación
Teniendo en cuenta lo siguiente:
TestClass
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:spring/app-config.xml")
public class JdbcWatsonDaoTests {
@Autowired
JdbMyDao jdbcMyDao;
@Before
public void setUp() throws Exception {
}
@Test
public void testMethod() {
doSomeStuff();
}
}
app-config.xml
<util:properties id="aProperties" location="classpath:spring/a.properties" />
<util:properties id="bProperties" location="classpath:spring/b.properties" />
<bean id="oracleDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
<property name="url" value="${oracle.url}"/>
<property name="username" value="${oracle.username}"/>
<property name="password" value="${oracle.password}"/>
</bean>
y los archivos a.properties y b.properties se encuentran en la misma ubicación que app- config.xml ...
He encontrado que al ejecutar la prueba, las propiedades marcador de posición s (el literal "$ {propiedad}") es lo que se envía al servidor de Oracle en lugar de los valores en los archivos de propiedades.
También intenté usar una configuración de beans usando PropertyPlaceholderConfigurer en lugar de, pero todavía no encuentra/incluye propiedades.
Estoy usando eclipse helios, primavera 3.0.5, lanzamiento más reciente m2eclipse y 4.4 junit. Tuve que degradar junit por otro error maven/junit.
Cuando se publica en tomcat, las propiedades se leen y utilizan correctamente. Solo veo el problema cuando ejecuto una prueba junit.
¿Estás ejecutando las pruebas a través de una compilación maven o thorugh eclipse> run as> junit test? –
eclipse> ejecutar como> junit test maven en este punto solo está gestionando dependencias. Solo lo mencioné porque me encontré con otro error que tenía que ver con el orden de compilación. – camada