@Value не работает в интеграционных тестах на Jenkins [Maven surefire]


Структура тестового примера приведена ниже. И мы запускаем TestSuite.java, используя плагин maven surefire на Jenkins.

        <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.16</version>
            <configuration>
                <includes>
                    <include>com/../suite/TestSuite.java</include>
                </includes>             
            </configuration>
        </plugin>

Класс TestSuite:

@RunWith(Suite.class)
@SuiteClasses({Test1.class, Test2.class})
public class TestSuite {
    @BeforeClass
    public static void init() {
        BaseTest.init();
    }
}

BaseTest.java{
    public static void init() throws Throwable {
        initApplicationContext();
        ...
    }

    private static void initApplicationcontext {
         String[] configLocation = { "classpath:/test-applicationContext.xml"};
         setApplicationContext(new ClassPathXmlApplicationContext(configLocation));
    }
}

Test1.java extends BaseTest{
    ...
    testMethodInBLClass1(){
        ...
        BLClass1.methodInBLClass1();
        ...
    }
}


BLClass1.java{
    methodInBLClass1(){
        BLClass2.methodInBLClass2();
    }
}

BLClass2.java{

    @Value("${some.value}")
    private String someValue;

    methodInBLClass2(){
        s.o.p(someValue);
    }
}

У меня есть файл свойств в src/test/resources, но при запуске тестового примера на Jenkins @Value не вводится. Таким образом, тестовый пример не работает.

Тестовые примеры работают нормально на локальном затмении.

Прошу помощи в понимании, что именно здесь не так.


person rupesh    schedule 03.05.2017    source источник
comment
Откуда взялся initApplicationContext() и как он выглядит?   -  person Sam Brannen    schedule 04.05.2017
comment
Почему вы не используете Spring TestContext Framework?   -  person Sam Brannen    schedule 04.05.2017
comment
Это код внутри initApplicationcontext(). private static void initApplicationcontext {String[] configLocation = {classpath:/test-applicationContext.xml}; setApplicationContext (новый ClassPathXmlApplicationContext (configLocation)); }   -  person rupesh    schedule 15.05.2017
comment
У вас несколько проектов или только один?   -  person Sam Brannen    schedule 28.05.2017
comment
Кроме того, как вы загружаете свой файл свойств?   -  person Sam Brannen    schedule 28.05.2017


Ответы (1)


На самом деле дело было в другом. @Value работал нормально. Атрибут в полезной нагрузке не вводился, поэтому тестовые примеры не удались.

Настоящую проблему вы можете указать здесь

person rupesh    schedule 30.05.2017