小编cam*_*ada的帖子

junit/spring属性未加载应用程序上下文

在运行junit测试时,我无法获取应用程序上下文来从外部属性文件加载属性.

鉴于以下内容:

识别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();
    }
}
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

并且a.properties和b.properties文件与app-config.xml位于同一位置...

我发现在运行测试时,属性占位符(文字"$ {property}")是发送到oracle服务器而不是属性文件中的值.

我也尝试使用PropertyPlaceholderConfigurer而不是bean配置,但它仍然找不到/包含属性.

我正在使用eclipse helios,spring 3.0.5,最新版本m2eclipse和4.4 junit.我不得不降级junit以获得不同的maven/junit bug.

在tomcat中发布时,将读取并正确使用这些属性.我只在运行junit测试时看到问题.

java eclipse junit spring maven

6
推荐指数
2
解决办法
2万
查看次数

标签 统计

eclipse ×1

java ×1

junit ×1

maven ×1

spring ×1