我是ANT构建的新手,在编译ant build.xml时收到错误“package org.testng.annotations不存在”和“package org.openqa.selenium不存在”。
这是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 :(得分:1)
我认为问题在于:
<pathconvert pathsep="."
property="test.classpath"
refid="classpath_jars"/>
我不知道"."
是有效路径分隔符的任何环境。结果是${test.classpath}
不是有效路径。这就是编译器无法访问TestNG和Selenium类的原因。
您也可以将test.classpath
与classpath_jars
相同。
(如果您的XML正确缩进,我会更早发现这一点。)