如何通过junit中的命令行参数传递主机名,用户名和密码?

时间:2014-06-02 13:49:46

标签: java selenium junit jar command-line-arguments

我不想使用system.getproperty或setproperty。我有一个提取URL的before方法

@Before
public void setUp( String baseUrl){
    driver = new FirefoxDriver();
    driver.get(baseUrl);
}

@test
public void logIn(){ 
    driver.findElement(By.id("username")).sendKeys("admin");
    driver.findElement(By.id("password")).sendKeys("xxx");
}

当我通过以下方式调用上述Junit测试用例时:

D:\>java -cp D:\Jars\hamcrest-core-1.1.jar;D:\Jars\junit-4.11.jar;D:\Jars\POC_PR
OJECT.jar;D:\Jars\selenium-java-2.31.0.jar;D:\Jars\selenium-server-standalone-2.
31.0.jar **-Dbaseurl="https://gmail.com/"** org.junit.runner.JUnitCore POC.LogInTest 

浏览器打开但没有打开任何网址,并通过说1)logIn(POC.LogInTest) java.lang.NullPointerException: null value in entry: url=null..失败 我也尝试在@test中编写网址,但没有用。

有人可以告诉我命令行如何在junit中知道-DbaseUrl应该如何链接到@test@before中提到的baseUrl。 简单来说,如何通过cmd行将url值传递给junit代码。

提前一吨......

1 个答案:

答案 0 :(得分:0)

AFAIK你无法通过框架本身将baseUrl参数与在命令行中传递的参数链接起来。

您可以做的是编写自定义AOP,它将通过setUp(String baseUrl)拦截baseUrl读取System.getProperty("baseUrl")的调用,并将其作为参数传递给方法。但它值得吗?