之前,我问我的问题,让我说,我已经通过这些相关的问题阅读:如何将ant参数传递给junit/selenium测试?
这里就是我希望实现的:
- 调用ant脚本如:
ant -Dhost="ip addy" -Dbrowser="chrome"
- in ant scri pt在webdriver测试调用
System.getProperty("key");
中将属性设置为arg1和arg2 - ,并使用这些值设置来确定加载哪个驱动程序。
这里是我现在所拥有的:在设置()
从build.xml文件
<!-- language: lang-xml -->
<!-- TARGET: Run JUNIT Tests depends on remove and compile-->
<target name="junit" depends="remove,compile">
<!-- remove junit dir -->
<delete dir="${junit.output.dir}"/>
<!-- make junit dir -->
<mkdir dir="${junit.output.dir}"/>
<junit fork="yes">
<formatter type="xml"/>
<formatter type="plain" usefile="false"/>
<sysproperty key="host" value="${arg1}"/>
<sysproperty key="browser" value="${arg2}"/>
<test name="${test.dir}.TestMyTest" todir="${junit.output.dir}"/>
//.......
java代码:
if (System.getProperty("browser").equals("firefox")) {
log.logInfo("Firefox driver initialized");
driver = new FirefoxDriver();
} else if (System.getProperty("browser").equals("ie") //....
当我执行ant -Dhost=ip -Dbrowser=firefox
我得到NPE的。我认为它必须与我的构建脚本并设置这些属性。我觉得我错了。
[junit] Testcase: testMyTest took 0.001 sec
[junit] Caused an ERROR
[junit] null
[junit] java.lang.NullPointerException
[junit] at tests.TestMyTest.setUp(Unknown Source)
[junit]
我在这里的假设是System.getProperty("browser")
是返回null。任何援助将不胜感激!
谢谢!!!!!
向我们展示如何设置'arg1'和arg2' –
我试图从ant命令中取出参数:ant param1 param2并在这时使用那些作为$ {arg1}或$ {arg2},上面的代码是$ arg1存在的唯一地方。 – bcar
Ant输出将'Unknown Source'显示为NullPointerException的原点。这意味着调试信息不会被添加到TestMyTest.class文件中。在编译测试用例的''任务中,请添加以下属性:'debuglevel =“lines,vars,source”'。用Ant重新编译TestMyTest并更新您的文章以反映新的输出。 –