0

このような2つの同一のビルドファイルがあります

build.xml

<?xml version="1.0" encoding="UTF-8"?>
<project name="Tryout" default="test1" basedir="."> 
    <property name="src" location="src"/>
    <property name="build" location="bin"/>
    <property name="junit" location="junit-4.10.jar"/>
    <target name="compile" description="compile the source" >
        <javac srcdir="${src}" destdir="${build}" debug="on">
            <classpath location="junit-4.10.jar"/>
            <classpath location="${build}"/>
        </javac>
    </target>
    <target name="test1" depends="compile">
        <junit printsummary="yes" fork="no" haltonfailure="no">
            <classpath location="${build}"/>
            <classpath location="junit-4.10.jar"/> 
            <formatter type="plain"/>
            <test name="TestOne"/> 
            <test name="TestTwo"/>
        </junit>
    </target>
</project>

唯一の違いは、Trial1 ではクラスが にbinあるのに対し、Trial2 ではクラスが にbin/one/two/threeあり、すべてのクラスが package にあることone.two.threeです。Trial1 は正常に動作し、junit テストが実行され、結果が txt ファイルに出力されます。Trial2 はソースを適切なフォルダーにコンパイルできますが、junit の実行時に失敗します。エラーは次のとおりです。

Testsuite: TestOne
Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0 sec

    Caused an ERROR
TestOne
java.lang.ClassNotFoundException: TestOne
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:264)

関連すると思われるデバッグの一部を次に示します

Class java.util.ArrayList loaded from parent loader (parentFirst)
Finding class org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner$3
Loaded from /usr/share/ant/lib/ant-junit.jar org/apache/tools/ant/taskdefs/optional/junit/JUnitTestRunner$3.class
Finding class TestOne
Class java.lang.System loaded from parent loader (parentFirst)
Class java.lang.StringBuffer loaded from parent loader (parentFirst)
    [junit] Running TestOne
Class org.apache.tools.ant.util.StringUtils loaded from parent loader (parentFirst)
Class org.apache.tools.ant.util.FileUtils loaded from parent loader (parentFirst)
    [junit] Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0 sec
    [junit] Test TestOne FAILED

私を正しい方向に向ける助けがあれば大歓迎です!! お時間をいただきありがとうございます。

4

1 に答える 1

1

<test name="one.two.three.TestOne"/>あなたのテストクラスの名前は であるべきですone.two.three.TestOne

Ant にテストの場所を見つけてもらいたい場合は、次のようにします。

<batchtest>
  <fileset dir="${src}">
    <include name="**/Test*.java"/>
  </fileset>
</batchtest>
于 2013-03-14T08:41:40.593 に答える