Swati Jha Swati Jha - 1 year ago 100
Java Question

Getting Error "Package doesn't exists" while compiling ant build.xml

I am new to ANT build and getting error "package org.testng.annotations does not exist" and "package org.openqa.selenium does not exist" on compiling ant build.xml.

Here is 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>


and here is the error list

[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


I have also set the JAVA_HOME C:\Program Files\Java\jdk1.7.0_25\bin and ANT_HOME C:\Users\Documents\selenium-2.35.0\apache-ant-1.9.2

Can anyone tell me how to get rid of this error.

VGR VGR
Answer Source

I believe the problem is here:

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

I'm not aware of any environment where "." is a valid path separator. The result is that ${test.classpath} is not a valid path. That is why your TestNG and Selenium classes are not accessible by the compiler.

You might as well make test.classpath identical to classpath_jars.

(I would have spotted this much sooner if your XML were properly indented.)

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download