2013-10-06 3 views
1

Я новичок в сборке ANT и получаю ошибку «пакет org.testng.nnotations не существует» и «package 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 lib в classpath? –

+1

Ваш XML не читается, потому что он не отстут. –

ответ

1

Я считаю, что проблема здесь:

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

Я не в курсе любой среде, где "." является действительным разделителем пути. В результате ${test.classpath} не является допустимым путем. Вот почему ваши классы TestNG и Selenium недоступны компилятору.

Вы также можете сделать test.classpath, идентичный classpath_jars.

(я заметил бы это гораздо раньше, если ваш XML были правильно отступом.)

+0

Спасибо за решение моей проблемы, разделитель путей должен быть «:» вместо «.». –

+0

Примите ответ. Подробнее см. Здесь http://meta.stackexchange.com/questions/23138/how-to-accept-the-answer-on-stack-overflow – Jayan

Смежные вопросы