Ant jUnit WebDriver - NoClassDefFoundError

时间:2012-06-06 09:56:58

标签: ant junit webdriver selenium-chromedriver

这些天我正在与Ant斗争,试图让它成为我的WebDriver测试的驱动程序。到目前为止,我得到了以下build.xml(公然从某处复制)

<property name="src" value="./src" />
<property name="lib" value="d:/apache-ant-1.8.4/lib/" />
<property name="bin" value="./bin/" />
<property name="report" value="./report" />
<path id="test.classpath">
    <pathelement location="${bin}" />
    <fileset dir="${lib}">
        <include name="**/*.jar" />
    </fileset>
</path>

<target name="init">
    <delete dir="${bin}" />
    <mkdir dir="${bin}" />
</target>

<target name="compile" depends="init">
    <javac source="1.6" srcdir="${src}" fork="true" destdir="${bin}" >
        <classpath>
            <pathelement path="${bin}">
            </pathelement>
            <fileset dir="${lib}">
                <include name="**/*.jar" />
            </fileset>
        </classpath>
    </javac>
</target>

<target name="exec" depends="compile">
    <delete dir="${report}" />
    <mkdir dir="${report}" />
        <mkdir dir="${report}/xml" />
    <junit printsummary="yes" haltonfailure="no">
        <classpath>
            <pathelement location="${bin}" />
            <fileset dir="${lib}">
                <include name="**/*.jar" />
            </fileset>
        </classpath>

        <test name="com.yourcompany.selenium.ccloop.tb6NoInterested" haltonfailure="no" todir="${report}/xml" outfile="TEST-result">
            <formatter type="xml" />
        </test>
    </junit>
    <junitreport todir="${report}">
        <fileset dir="${report}/xml">
            <include name="TEST*.xml" />
        </fileset>
        <report format="frames" todir="${report}/html" />
    </junitreport>
</target>

现在,当我运行ant时,一切都变得很好,但测试没有运行,我得到了NoClassDefFoundError。

  

组织/阿帕奇/ HTTP / HttpHost

     

java.lang.NoClassDefFoundError:org / apache / http / HttpHost at at   org.openqa.selenium.chrome.ChromeDriver。(ChromeDriver.java:144)   在   org.openqa.selenium.chrome.ChromeDriver。(ChromeDriver.java:86)   在com.yourcompany.selenium.ccloop.tb6NoInterested.setUp(未知   来源)引起:java.lang.ClassNotFoundException:   org.apache.http.HttpHost at   java.net.URLClassLoader $ 1.run(URLClassLoader.java:202)at   java.security.AccessController.doPrivileged(Native Method)at   java.net.URLClassLoader.findClass(URLClassLoader.java:190)at   java.lang.ClassLoader.loadClass(ClassLoader.java:306)at   java.lang.ClassLoader.loadClass(ClassLoader.java:247)at   java.lang.ClassLoader.loadClass(ClassLoader.java:247)N / A

     

java.lang.NullPointerException at   com.yourcompany.selenium.ccloop.tb6NoInterested.tearDown(未知   源)

包名是com.yourcompany.selenium.ccloop 测试名称为tb6NoInterested

我在ant lib文件夹中有所有的罐子(hamcrest,junit,selenium)

我做错了什么?

1 个答案:

答案 0 :(得分:1)

似乎httpcore from apache 不在类路径中。

org/apache/http/HttpHost是该库中的一个类。

当我得到令人惊讶的NoClassDefFoundError时,我通常使用findjar来查找哪些jar包含类。