2013-10-06 232 views
1

我是ANT的新手,並且出現錯誤「程序包org.testng.annotations不存在」和「程序包org.openqa.selenium不存在」編譯ant build.xml。在編譯ant build.xml時出現「程序包不存在」的錯誤

這裏的build.xml

<project name="TestNGProject" default="usage" basedir="."> 
<!-- ===============Initialize property============================ --> 
<property environment="env"/> 
<property name="ws.home" value="${basedir}"/ 
<property name="ws.jars" value="C:\Users\Documents\selenium-2.35.0\AllJars"/> 
<property name="test.dest" value="${ws.home}/build"/> 
<property name="test.src" value="${ws.home}/src"/> 
<property name="ng.results" value="test-output"/> 

<target name="setClassPath" unless="test.classpath"> 
    <path id="classpath_jars"> 
     <fileset dir="${ws.jars}" includes="*.jar"/> 
    </path> 
    <pathconvert pathsep="." 
    property="test.classpath" 
    refid="classpath_jars"/> 
</target> 

<target name="init" depends="setClassPath"> 
    <tstamp> 
     <format property="start.time" pattern="MM/dd/yyyy hh:mm aa"/> 
    </tstamp> 

    <condition property="ANT" 
     value="${env.ANT_HOME}/bin/ant.bat" 
     else="${env.ANT_HOME}/bin/ant"> 
     <os family="windows" /> 
    </condition> 

    <!--taskdef name="testng" classpath="${test.classpath}" 
     classname="org.testng.TestNGAntTask" /--> 

</target> 

<!--all--> 
<target name="all"> 
</target> 

<!--clean--> 
<target name="clean"> 
    <delete dir="${test.dest}"/> 
</target> 

<!--compile--> 
<target name="compile" depends="init, clean"> 
    <delete includeemptydirs="true" quiet="true"> 
     <fileset dir="${test.dest}" includes="**/*"/> 
    </delete> 
    <echo message= "making dir..."/> 
     <mkdir dir="${test.dest}"/> 
    <echo message="classpath---------: ${test.classpath}"/> 
    <echo message="compiling..."/> 

    <javac 
    includeantruntime="false" 
    destdir="${test.dest}" 
    srcdir="${test.src}" 
    classpath="${test.classpath}" 
    > 
    </javac> 
</target> 

<!--build--> 
<target name="build" depends ="init"> 
</target> 

<target name="run" depends ="compile"> 

<testng classpath="${test.classpath}:${test.dest}" suitename="suite"> 
    <xmlfileset dir ="${ws.home}" includes="testng.xml"/> 
</testng> 

</target> 

<target name="usage"> 
<echo> 
    ant run will execute test case 
</echo> 
</target> 

<path id="test.c"> 
    <fileset dir="${ws.jars}" includes="*.jar"/> 
</path> 

</project> 

,這裏是錯誤列表

[javac] Compiling 2 source files to C:\Users\workspace\TestNGProject\build 
[javac] C:\Users\workspace\TestNGProject\src\TestNGPackage\NewTestNG.j 
ava:3: error: package org.testng.annotations does not exist 
[javac] import org.testng.annotations.Test; 
[javac]       ^
[javac] C:\Users\workspace\TestNGProject\src\TestNGPackage\NewTestNG.j 
ava:4: error: package org.testng.annotations does not exist 
[javac] import org.testng.annotations.DataProvider; 
[javac]       ^
[javac] C:\Users\workspace\TestNGProject\src\TestNGPackage\NewTestNG.j 
ava:5: error: package org.testng.annotations does not exist 
[javac] import org.testng.annotations.BeforeClass; 
[javac]       ^
[javac] C:\Users\workspace\TestNGProject\src\TestNGPackage\NewTestNG.j 
ava:6: error: package org.testng.annotations does not exist 
[javac] import org.testng.annotations.AfterClass; 
[javac]       ^
[javac] C:\Users\workspace\TestNGProject\src\TestNGPackage\NewTestNG.j 
ava:7: error: package org.testng does not exist 
[javac] import static org.testng.AssertJUnit.assertEquals; 
[javac]      ^
[javac] C:\Users\workspace\TestNGProject\src\TestNGPackage\NewTestNG.j 
ava:7: error: static import only from classes and interfaces 
[javac] import static org.testng.AssertJUnit.assertEquals; 
[javac]^
[javac] C:\Users\workspace\TestNGProject\src\TestNGPackage\NewTestNG.j 
ava:9: error: package org.openqa.selenium does not exist 
[javac] import org.openqa.selenium.By; 
[javac]       ^
[javac] C:\Users\workspace\TestNGProject\src\TestNGPackage\NewTestNG.j 
ava:10: error: package org.openqa.selenium does not exist 
[javac] import org.openqa.selenium.WebDriver; 
[javac]       ^
[javac] C:\Users\workspace\TestNGProject\src\TestNGPackage\NewTestNG.j 
ava:11: error: package org.openqa.selenium does not exist 
[javac] import org.openqa.selenium.WebElement; 
[javac]       ^
[javac] C:\Users\workspace\TestNGProject\src\TestNGPackage\NewTestNG.j 
ava:12: error: package org.openqa.selenium.firefox does not exist 
[javac] import org.openqa.selenium.firefox.FirefoxDriver; 
[javac]         ^
[javac] C:\Users\workspace\TestNGProject\src\TestNGPackage\NewTestNG.j 
ava:16: error: cannot find symbol 
[javac]  private WebDriver driver; 
[javac]   ^
[javac] symbol: class WebDriver 
[javac] location: class NewTestNG 
[javac] C:\Users\workspace\TestNGProject\src\TestNGPackage\NewTestNG.j 
ava:17: error: cannot find symbol 
[javac]  private WebElement FahrenheitInput; 
[javac]    ^
[javac] symbol: class WebElement 
[javac] location: class NewTestNG 
[javac] C:\Users\workspace\TestNGProject\src\TestNGPackage\NewTestNG.j 
ava:18: error: cannot find symbol 
[javac]  private WebElement CelsiusInput; 
[javac]    ^
[javac] symbol: class WebElement 
[javac] location: class NewTestNG 
[javac] C:\Users\workspace\TestNGProject\src\TestNGPackage\NewTestNG.j 
ava:19: error: cannot find symbol 
[javac]  private WebElement ConvertButton; 
[javac]    ^
[javac] symbol: class WebElement 
[javac] location: class NewTestNG 
[javac] C:\Users\workspace\TestNGProject\src\TestNGPackage\sample.java 
:3: error: package org.testng.annotations does not exist 
[javac] import org.testng.annotations.Test; 
[javac]       ^
[javac] C:\Users\workspace\TestNGProject\src\TestNGPackage\NewTestNG.j 
ava:20: error: cannot find symbol 
[javac]  @BeforeClass 
[javac]  ^
[javac] symbol: class BeforeClass 
[javac] location: class NewTestNG 
[javac] C:\Users\workspace\TestNGProject\src\TestNGPackage\NewTestNG.j 
ava:29: error: cannot find symbol 
[javac]  @DataProvider(name = "CelsToFahrDP") 
[javac]  ^
[javac] symbol: class DataProvider 
[javac] location: class NewTestNG 
[javac] C:\Users\workspace\TestNGProject\src\TestNGPackage\NewTestNG.j 
ava:33: error: cannot find symbol 
[javac]  @Test(dataProvider = "CelsToFahrDP") 
[javac]  ^
[javac] symbol: class Test 
[javac] location: class NewTestNG 
[javac] C:\Users\workspace\TestNGProject\src\TestNGPackage\NewTestNG.j 
ava:40: error: cannot find symbol 
[javac]  @AfterClass 
[javac]  ^
[javac] symbol: class AfterClass 
[javac] location: class NewTestNG 
[javac] C:\Users\workspace\TestNGProject\src\TestNGPackage\sample.java 
:6: error: cannot find symbol 
[javac] @Test 
[javac] ^
[javac] symbol: class Test 
[javac] location: class sample 
[javac] C:\Users\workspace\TestNGProject\src\TestNGPackage\NewTestNG.j 
ava:22: error: cannot find symbol 
[javac]   driver = new FirefoxDriver(); 
[javac]      ^
[javac] symbol: class FirefoxDriver 
[javac] location: class NewTestNG 
[javac] C:\Users\workspace\TestNGProject\src\TestNGPackage\NewTestNG.j 
ava:25: error: cannot find symbol 
[javac]   CelsiusInput = driver.findElement(By.xpath("//form[2]/cente 
r[2]/input")); 
[javac]           ^
[javac] symbol: variable By 
[javac] location: class NewTestNG 
[javac] C:\Users\workspace\TestNGProject\src\TestNGPackage\NewTestNG.j 
ava:26: error: cannot find symbol 
[javac]   FahrenheitInput = driver.findElement(By.xpath("//form[2]/ce 
nter[2]/input[2]")); 
[javac]            ^
[javac] symbol: variable By 
[javac] location: class NewTestNG 
[javac] C:\Users\workspace\TestNGProject\src\TestNGPackage\NewTestNG.j 
ava:27: error: cannot find symbol 
[javac]   ConvertButton = driver.findElement(By.xpath("//form[2]/cent 
er[2]/input[3]")); 
[javac]           ^
[javac] symbol: variable By 
[javac] location: class NewTestNG 
[javac] 24 errors 

我還設置JAVA_HOME C:\ Program Files文件\的Java \ jdk1.7.0_25 \ bin和ANT_HOME C:\ Users \ Documents \ selenium-2.35.0 \ apache-ant-1.9.2

誰能告訴我如何擺脫這個錯誤。

+0

TestNG的庫不會在類路徑中存在。 –

+0

感謝您的回覆......您可以告訴我如何在類路徑中添加TestNg庫 –

+1

您的XML無法讀取,因爲它沒有縮進。 –

回答

1

我相信這個問題是在這裏:

<pathconvert pathsep="." 
    property="test.classpath" 
    refid="classpath_jars"/> 

我不知道哪裏"."是一個有效的路徑分隔符的任何環境中。結果是${test.classpath}不是有效的路徑。這就是爲什麼你的TestNG和Selenium類不能被編譯器訪問。

你也可以讓test.classpathclasspath_jars相同。

(我會,如果你的XML是適當的縮進看準了這一點更快。)

+0

感謝您解決我的問題,路徑分隔符必須是「:」而不是「。」。 –

+0

請接受答案。在此處查看詳情http://meta.stackexchange.com/questions/23138/how-to-accept-the-answer-on-stack-overflow – Jayan

相關問題