Ant无法为使用wsdl2java生成的项目找到junit

时间:2011-05-23 15:04:35

标签: ant junit axis2

我使用以下命令创建了一个带有单元测试的axis2 soap客户端项目:

wsdl2java -t -uri http://myDomain.tld/myService.svc?wsdl

然后我运行了ant并且遇到了构建错误,因为它找不到junit方法,例如fail(),assertNotNull()等。我意识到我需要编译器引用一个junit jar。查看build.xml我看到以下内容:

<property name="classes" value="${build}/classes"/>
<property name="lib" value="${build}/lib"/>

所以我将junit-4.8.2.jar放在build.lib子文件夹中。我仍然得到同样的错误。我还需要做些什么才能让ant来构建我的项目?

更新

我对build.xml进行了以下更改:

将lib文件夹添加为id local.class.path

的路径
<path id="local.class.path">
    <fileset dir="${lib}">
        <include name="*.jar"/>
    </fileset>
</path>

然后我修改了我的init任务以寻找junit:

    <available classpathref="local.class.path" property="junit.available" classname="junit.framework.TestCase"/>
    <condition property="jars.ok">
        <and>
            <isset property="stax.available"/>
            <isset property="axis2.available"/>
            <isset property="junit.available"/>
        </and>
    </condition>
    <!--Print out the availabilities-->
    <echo message="Stax Availability= ${stax.available}"/>
    <echo message="Axis2 Availability= ${axis2.available}"/>
    <echo message="JUnit Availability= ${junit.available}"/>

奇怪的是输出是:

H:\Code\Java\test.axis2> ant pre.compile.test
Buildfile: H:\Code\Java\RiskTools.axis2\build.xml

init:
    [mkdir] Created dir: H:\Code\Java\test.axis2\build
    [mkdir] Created dir: H:\Code\Java\test.axis2\build\classes
    [mkdir] Created dir: H:\Code\Java\test.axis2\build\lib

pre.compile.test:
     [echo] Stax Availability= true
     [echo] Axis2 Availability= true
     [echo] JUnit Availability= ${junit.available}

BUILD SUCCESSFUL
Total time: 0 seconds

所以看来我做错了,因为行 [echo] JUnit Availability = $ {junit.available}

1 个答案:

答案 0 :(得分:0)

显然build/lib是被ant clean吹走的瞬态文件夹。我在项目根目录下创建了一个名为lib的文件夹,然后对build.xml执行了以下操作。

在根目录中我添加了<property name="dep_libs" value="${project.base.dir}/lib"/>

然后我将上面的路径声明更改为:

<path id="local.class.path">
    <fileset dir="${dep_libs}">
        <include name="*.jar"/>
    </fileset>
</path>

然后一切正常。