1

.xml を含む spring プロファイルをコンテキスト構成にインポートするとともに @Activeprofiles を使用しましたが、プロファイルをそれぞれの Junit クラスにロードしていないようです。以下は私がやったことのスニペットです。アサート コンペア値は、設定されているプロファイルに従って変更されていません。スプリング プロファイルを有効にするための改善点。テストクラス。

@RunWith(SpringJUnit4ClassRunner.class)
@ActiveProfiles("unittest-hsql")
@ContextConfiguration(locations = {
    "classpath:spring/Services.xml"
    "classpath:spring/profiles/dev.xml"
})

public class TestSpringProfile
{
 @Test
    public void testGetCronExpression()
    {
        String expression = EventLimitation.getExpression();
        assertThat(expression, is("20"));
    }
}
4

2 に答える 2

0

「unittest-hsql」という名前のプロファイルを指定する以下のようなファイル spring/profiles/dev.xml にある限り、これは機能するはずです。

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

    <beans profile="unittest-hsql">
        <bean id="applicationPropertiesPlaceholder"
            class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
            <property name="locations">
                <list>
                    <value>classpath:profiles/hsqldb.profile.properties</value>
                </list>
            </property>
        </bean>
    </beans>

</beans>
于 2014-05-15T17:37:00.487 に答える
0

プロファイル固有の構成のbeansタグでprofile属性を指定してみてください。

<!--language:xml-->
<?xml version="1.0" encoding="UTF-8"?>
<beans profile="dev">
...
</beans>
于 2014-05-15T17:19:16.227 に答える