【发布时间】:2017-05-03 06:20:45
【问题描述】:
我已经测试用例结构如下。我们正在使用 Jenkins 上的 maven surefire 插件触发 TestSuite.java。
<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 没有被注入。 因此测试用例失败。
测试用例在本地 Eclipse 上运行良好。
请求帮助以了解这里到底出了什么问题。
【问题讨论】:
-
initApplicationContext()从何而来,又长什么样子? -
你为什么不使用Spring TestContext Framework?
-
这是 initApplicationcontext() 中的代码。私有静态无效 initApplicationcontext { String[] configLocation = { "classpath:/test-applicationContext.xml"}; setApplicationContext(new ClassPathXmlApplicationContext(configLocation)); }
-
你有多个项目,还是只有一个?
-
另外,你是如何加载你的属性文件的?
标签: junit spring-test maven-surefire-plugin spring-properties