我有一个包含JUnit测试的
Java项目,需要通过Jenkins在不同的测试环境(Dev,Staging等)上运行.
我目前在不同环境上构建项目以及将url,用户名和密码传递给测试运行器的解决方案是在POM文件中为每个环境加载特定的属性文件.将通过Maven构建命令为每个环境设置属性文件:
mvn clean install -DappConfig=/src/test/resouces/integration.environment.properties
在pom.xml中:
maven-surefire-plugin
${app.config}
在JUnit测试运行器类中:
public class BoGeneralTest extends TestCase {
protected WebDriver driver;
protected BoHomePage boHomePage;
protected static Properties systemProps;
String url = systemProps.getProperty("Url");
String username = systemProps.getProperty("Username");
String password = systemProps.getProperty("Password");
int defaultWaitTime = Integer.parseInt(systemProps.getProperty("waitTimeForElements"));
String regUsername = RandomStringUtils.randomAlphabetic(5);
final static String appConfigPath = System.getProperty("appConfig");
static {
systemProps = new Properties();
try {
systemProps.load(new FileReader(new File(appConfigPath)));
} catch (Exception e) {
e.printStackTrace();
}
}
这个配置的问题是现在单独的测试不能通过Eclipse单独运行,因为他们希望从maven接收appConfig并且我得到NullPointerException.
任何建议都非常感谢.