2016-11-16 53 views
0

當通過啓用XML報告的ant-d運行junit-4.12測試用例時,我的測試套件未執行。爲什麼「ant junit」找不到測試套件

這是build.xml文件的一部分:

<target name="compile" depends="prepare"> 
    <!-- kompilieren der Quelldateien --> 
    <javac includeantruntime="false" srcdir="${source.dir}" destdir="${build.dir}"> 
     <classpath> 
      <path refid="classPath"/> 
          <pathelement location="${lib.dir}/junit-4.12.jar" /> 
          <pathelement location="${lib.dir}/hamcrest-all-1.3.jar" /> 
          <pathelement location="test" /> 
          <pathelement location="." /> 
     </classpath> 
    </javac> 
      <javac includeantruntime="false" srcdir="${tests.dir}" destdir="${build.dir}"> 
        <classpath> 
          <path refid="classPath"/> 
          <pathelement location="${lib.dir}/junit-4.12.jar" /> 
          <pathelement location="${lib.dir}/hamcrest-all-1.3.jar" /> 
          <pathelement location="test" /> 
          <pathelement location="." /> 
        </classpath> 
      </javac> 

    <!-- kopieren der Dateien, die in den 
     resources-Verzeichnissen liegen --> 
    <copy todir="${build.dir}" overwrite="y"> 
     <fileset dir="${source.dir}"> 
      <!-- beruecksichtigt alle Verzeichnisse mit 
       Namen resources und alle .properties Dateien --> 
      <include name="**/resources/" /> 
      <include name="**/*.properties" /> 
     </fileset> 
    </copy> 
</target> 
<target name="junit" depends="compile"> 
    <junit printsummary="yes" fork="false" haltonfailure="false" 
    failureproperty="tests.failed" showoutput="true" dir="${build.dir}"> 
     <classpath> 
      <path refid="classPath" /> 
      <pathelement location="${lib.dir}/junit-4.12.jar" /> 
      <pathelement location="${lib.dir}/hamcrest-all-1.3.jar" /> 
      <pathelement location="test" /> 
      <pathelement location="." /> 
      <!-- <path location="${source.dir}" /> --> 
     </classpath> 
     <formatter type="xml" /> 
     <batchtest todir="${report.dir}"> 
      <fileset dir="test"> 
       <exclude name="**/GMRTest*.class" /> 
       <include name="**/AllTests.class" /> 
      </fileset> 
     </batchtest> 
    </junit> 
</target> 

提前感謝!

格里特

PS這是我的JUnit測試工具的測試/ AllTests.java:

package test; 

import org.junit.AfterClass; 
import org.junit.BeforeClass; 
import org.junit.runner.RunWith; 
import org.junit.runners.Suite; 
import org.junit.runners.Suite.SuiteClasses; 

import projekt.GMR; 

@RunWith(Suite.class) 
@SuiteClasses({ GMRTest.class, 
      GMRTest2.class, 
      GMRTest3.class}) 
public class AllTests { 



    @BeforeClass 
    public static void setUpClass() {  
    System.out.println("Master setup"); 

    } 

    @AfterClass public static void tearDownClass() { 
     System.out.println("Master tearDown"); 
    } 

} 
+0

這是junitReport Ant目標的輸出HTML: – Leder

+0

'警告\t失敗\t沒有在tests.AllTests發現 junit.framework.AssertionFailedError測試:沒有發現測試在tests.AllTests' – Leder

+0

或'AllTests中(錯誤的名稱:測試/ AllTests中) java.lang.NoClassDefFoundError:AllTests中(錯誤的名稱:測試/ AllTests中)\t在java.lang.ClassLoader.defineClass1(本機方法)\t是java .lang.ClassLoader.defineClass(ClassLoader.java:763)\t at java.lang.ClassLoader.loadClass(ClassLoader.java:357)\t at java.lang.Class.forName0(Native Method)\t at java.lang.Class.forName(Class.java:348)' – Leder

回答

0

我在srcdir + package name = projekt dir 而不是srcdir = projekt dir

和測試來編譯dir + package name = test dir 而不是dir = test dir

S Ødirsrcdir等於既. build.xml中