1

这个 Ant-Target 有效:

<target name="run">
    <java jar="dist/FBChatSoft.jar" fork="true"/>
</target>

所以“dist/FBChatSoft.jar”是 jar 的正确路径。

但是以下目标不起作用。*Test.java 的路径也是正确的。,

<target name="junit" depends="jar">
    <mkdir dir="junitreport"/>
    <junit printsummary="yes">
        <classpath>
            <path location="dist/FBChatSoft.jar"/>
        </classpath>

        <formatter type="xml"/>

        <batchtest fork="yes" todir="junitreport">
            <fileset dir="src/fbchatsoft/client/" includes="*Test.java"/>
        </batchtest>
    </junit>
</target>

<target name="junitreport">
    <junitreport todir="junitreport">
        <fileset dir="junitreport" includes="TEST-*.xml"/>
        <report todir="junitreport"/>
    </junitreport>
</target>

在 JUnitReport 我可以阅读:

属性助手测试

java.lang.ClassNotFoundException:在 java.net.URLClassLoader.findClass(URLClassLoader.java:205) 的 java.security.AccessController.doPrivileged(Native Method) 的 java.net.URLClassLoader$1.run(URLClassLoader.java:217) 的 PropertiesHelperTest在 java.lang.ClassLoader.loadClass(ClassLoader.java:321) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:266) 在 java。 java.lang.Class.forName(Class.java:186) 处的 lang.Class.forName0(Native Method)

您可以在以下位置找到整个代码:https ://bitbucket.org/michaelkohler/fbchatsoft/src

4

2 回答 2

0

我编辑了我的 build.xml,现在它看起来像这样:

    <?xml version="1.0" encoding="UTF-8"?>
<project name="FBChatSoft" default="default" basedir=".">
    <description>Builds, tests, and runs the project FBChatSoft.</description>

    <import file="nbproject/build-impl.xml"/>

    <import file="nbproject/profiler-build-impl.xml"/>

    <target name="clean">
        <delete dir="dist"/>
    </target>

    <target name="compile">
        <mkdir dir="build/classes"/>
        <javac srcdir="src" destdir="build/classes"/>
    </target>

    <target name="jar">
        <mkdir dir="dist"/>
        <jar destfile="dist/FBChatSoft.jar" basedir="build/classes">
            <manifest>
                <attribute name="Main-Class" value="fbchatsoft.client.FBChatSoft"/>
        <attribute name="Class-Path" value="lib/smack.jar lib/junit-4.5.jar"/>
            </manifest>
        </jar>
    </target>

    <target name="run">
        <java jar="dist/FBChatSoft.jar" fork="true"/>
    </target>

    <target name="junit" depends="jar">
        <mkdir dir="junitreport"/>
        <junit printsummary="yes">
            <classpath>
                <pathelement location="build/classes/"/>
            </classpath>

            <formatter type="xml"/>

            <batchtest todir="junitreport">
                <fileset dir="src/" includes="**/*Test.java"/>
            </batchtest>
        </junit>
    </target>

    <target name="junitreport">
        <junitreport todir="junitreport">
            <fileset dir="junitreport" includes="TEST-*.xml"/>
            <report todir="junitreport"/>
        </junitreport>
    </target>
</project>

然后我将最新的 junit 包添加到 /usr/share/ant/lib 中,现在它可以工作了!

于 2011-03-12T16:55:01.633 回答
0

您需要使用**/*Test.java才能递归地包含文件。

请参阅文件集基于目录的任务文档。

于 2011-02-26T13:02:40.280 回答