我不想使用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代码。
提前一吨......
答案 0 :(得分:0)
AFAIK你无法通过框架本身将baseUrl参数与在命令行中传递的参数链接起来。
您可以做的是编写自定义AOP,它将通过setUp(String baseUrl)
拦截baseUrl
读取System.getProperty("baseUrl")
的调用,并将其作为参数传递给方法。但它值得吗?