ant始终返回的TestNg/Selenium调用在类路径中找不到类

ant始终返回的TestNg/Selenium调用在类路径中找不到类,ant,testng,selenium-rc,Ant,Testng,Selenium Rc,我对这种设置很陌生。还有一个问题是ant用TestNG调用我的项目 我可以在Eclipse中毫无问题地运行testng.xml,但我总是无法通过ant在类路径中找到类 Build.xml <project basedir="." default="runTest" name="Ant file for TestNG"> <property name="src" location="src" /> <property name="bin" location="bin

我对这种设置很陌生。还有一个问题是ant用TestNG调用我的项目

我可以在Eclipse中毫无问题地运行testng.xml,但我总是无法通过ant在类路径中找到类

Build.xml

<project basedir="." default="runTest" name="Ant file for TestNG">

<property name="src" location="src" />
<property name="bin" location="bin" />
<property name="telus" location="C:\ESP_Testware\ESP_Projects\Selenium\telus-pharma-integration-tests\src\test\resources\suite\local" />
<property name="libs" location="lib" />

<path id="class.path">
     <pathelement location="${libs}/testng-6.4.jar" />
     <pathelement location="${libs}/selenium-java-client-driver.jar" />
     <pathelement location="${libs}/selenium-server-standalone-2.39.0.jar" />
     <pathelement location="${bin}"/>
     <pathelement location="${telus}"/>

     </path>

<taskdef name="testng" classname="org.testng.TestNGAntTask">
<classpath>
<pathelement location="${libs}/testng-6.4.jar"/>
</classpath>
</taskdef>

<target name="runTest">

     <echo message="mkdir"/>

 <mkdir dir="testng_output"/><!-- Create the output directory. -->
     <echo message= "TestNg Start"/>
  <testng outputdir="testng_output" classpathref="class.path"> 
     <xmlfileset dir="${telus}" includes="testng.xml"/> 
    <!--    <xmlfileset dir="." includes="TestNG2.xml"/> -->
   </testng>

</target>
 </project> 
Testng.xml

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Bolt harness QA" verbose="1">
    <parameter name="test.env" value="qa" />
    <parameter name="selenium.url" value="https://www.google.com" />
    <!-- Valid values for browser: FF, IE, Chrome -->
    <parameter name="selenium.browser" value="Chrome" />

    <listeners>
        <listener class-name="com.gdo.test.integration.listener.SoftAssertTestListener" />
    </listeners>

    <test name="Test_MS_Website" preserve-order="true">
        <classes>

            <class name="com.gdo.telus.SC006">
                <methods>
                    <include name="Web_InvalidPassword" />
                    <exclude name="Web_LockedAccount" />
                </methods>
            </class>

        </classes>
    </test>
</suite>
我的类位于以下路径:

C:\ESP\U Testware\ESP\U Projects\Selenium\telus制药集成测试\src\test\java\com\gdo\telus


谢谢您的帮助。

试试我的build.xml文件,我确实在这个build.xml文件中添加了ReportNG插件,以生成外观更好的报告,而不是默认的TestNG报告。您只需下载用于报告的jar文件,并将其放入lib文件夹中,即可正常工作:

<project name="Some Bullshit Goes Here" default="clean" basedir=".">

    <!-- Initilization properties -->
        <!-- <property name="lib.dir" value="${basedir}/lib"/> -->

<!-- using the ${basedir} allows you to use relative paths. It will use the working directory and add folders that you specify -->

    <property name="build.dir" value="${basedir}/build"/>
    <property name="lib.dir" value="hardcoded value can go here"/>
    <property name="src.dir" value="${basedir}/src"/>
    <property name="bin.dir" value="${basedir}/bin"/>
    <property name="output.dir" value="${basedir}/output"/>


<!-- I chose to hardcode the location where my jar library files will be, it will be used for compilation. Again you can set relative path if you wish.-->
<path id="assloadoflibs">
    <fileset dir="/automated/tests/library">
        <include name="*.jar"/>
    </fileset>
    <pathelement path="${basedir}/bin"/>
</path>

    <!-- setting libraries -->
    <target name="setClassPath">
        <path id="classpath_jars">
            <pathelement path="${basedir}/"/>
        <fileset dir="/automated/tests/library" includes="*.jar"/>
        </path>

    <!-- Convert jar collection from a given reference into one list, storing the result into a given property, separated by colon -->

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


<target name="loadTestNG" depends="setClassPath"> 
<!-- Creating task definition for TestNG task -->
    <taskdef resource="testngtasks" classpath="${test.classpath}"/> 

    </target>  

    <target name="init">
    <!-- Creating build directory structure used by compile -->
        <mkdir dir="${build.dir}"/>
    </target>

    <target name="clean">
        <echo message="deleting existing build directory"/>
        <delete dir="${build.dir}"/>
    </target>

    <!-- In compile target dependency is given over clean target followed by init,
    this order makes sure that build directory gets created before compile takes place
    This is how a clean complile is achieved.
    -->

    <target name="compile" depends="clean,init,setClassPath,loadTestNG">
        <echo message="classpath:${test.classpath}"/>
        <echo message="compiling..."/>
        <javac destdir="${build.dir}" srcdir="${src.dir}" classpath="${test.classpath}"/>


    </target>

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

        <!-- testng classpath has been provided reference of jar files and compiled classes
        this will generate report NG report.
        -->

    <testng classpath="${test.classpath}:${build.dir}" outputdir="${basedir}/output" haltonfailure="false" useDefaultListeners="true" listeners="org.uncommons.reportng.HTMLReporter,org.uncommons.reportng.JUnitXMLReporter" classpathref="reportnglibs">
<xmlfileset dir="${basedir}" includes="testng.xml"/>

<!-- This value here will show the title of the report --> 
<sysproperty key="org.uncommons.reportng.title" value="Example Test Report"/>
        </testng>
    </target>
</project>
以下是我的TestNG.xml文件:

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">

<suite name="Example Test Suite">

<test name ="Example TestCase Name">
    <classes>
        <class name="packageName.JavaFilename"></class>
    </classes>
</test>
</suite>

我在这个网站上找到了我的答案。我需要使用maven调用我的解决方案


但是thanx无论如何,为了您的帮助

我不想编译,我只想在类文件上运行我的测试。我尝试了build.xml,编译步骤返回了很多错误。缺少符号和其他。我的构建xml能够在不编译的情况下运行我的testng,但似乎在类路径方面存在问题。我查看了build.xml文件,注意到:classpathref=class.path尝试将其转换为变量:classpathref=${class.path}显然,您需要确保变量设置正确,指向所有类所在的位置。基本上,问题是,它不知道如何运行测试,您必须向它提供.class文件和java库jar文件的位置。当它执行测试时,testng侦听器将接收任何失败。