2013-06-18 51 views
0

之前,我问我的问题,让我说,我已经通过这些相关的问题阅读:如何将ant参数传递给junit/selenium测试?

这里就是我希望实现的:

  1. 调用ant脚本如:ant -Dhost="ip addy" -Dbrowser="chrome"
  2. in ant scri pt在webdriver测试调用System.getProperty("key");中将属性设置为arg1和arg2
  3. ,并使用这些值设置来确定加载哪个驱动程序。

这里是我现在所拥有的:在设置()

从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。任何援助将不胜感激!

谢谢!!!!!

+0

向我们展示如何设置'arg1'和arg2' –

+0

我试图从ant命令中取出参数:ant param1 param2并在这时使用那些作为$ {arg1}或$ {arg2},上面的代码是$ arg1存在的唯一地方。 – bcar

+0

Ant输出将'Unknown Source'显示为NullPointerException的原点。这意味着调试信息不​​会被添加到TestMyTest.class文件中。在编译测试用例的''任务中,请添加以下属性:'debuglevel =“lines,vars,source”'。用Ant重新编译TestMyTest并更新您的文章以反映新的输出。 –

回答

1

没有属性名称为arg1arg2。相反,指的是用户属性的名字:

<!-- Verify the properties exist. --> 
<fail unless="host"/> 
<fail unless="browser"/> 

<junit fork="yes"> 
    <!-- ... --> 
    <sysproperty key="host" value="${host}"/> 
    <sysproperty key="browser" value="${browser}"/> 
    <!-- ... --> 
</junit> 
+0

乍得,感谢提示,但是我仍然在获取null值时我试图检索在Java代码中的属性。String browser = sys.getProperty(“browser”); String host = sys.getProperty(“host”); log.logInfo(“浏览器系统属性设置为: “+ browser); log.logInfo(”主机系统属性设置为:“+主机);' – bcar

0

与@Chad Nouis帮助它现在解决了沿想通了我自己的编码错误。

Properties sys = new Properties(); 

应该是:再次

Properties sys = System.getProperties(); 

乍得感谢您的帮助!

相关问题