2015-09-08 114 views
1

這裏我將testng.xml集成到build.xml文件中。但是當我嘗試運行build.xml時,出現「Build failed」錯誤。我不知道爲什麼。如果你有一些想法,請給我建議。另請查看我的執行步驟,以便更好地理解。如果有任何錯誤,請告訴我。嘗試使用Ant運行TestNG測試時出現「Build Failed」錯誤

執行步驟:

  1. 刪除垃圾桶,文檔,文件夾,罐子如果已經有
  2. 創建箱,文檔,罐子
  3. 設置CLASSPATH外部罐新的文件夾。
  4. 之前設置CLASSPATH,我放在lib文件夾「TestNG的-6.8.5.jar」(目前正在使用只有一個jar文件)
  5. 編譯源代碼和.class文件複製到bin文件夾
  6. 運行具體的 「目標」,從獲得TestNG的測試報告

在build.xml

<?xml version="1.0"?> 
<project name="AntBasics" default="main" basedir="."> 
    <description>Running TestNG with Ant</description> 

    <!-- Properties Declaration --> 

    <property name="src.dir" location="src" /> 
    <property name="test.dir" location="src" /> 
    <property name="lib.dir" location="lib" /> 
    <property name="build.dir" location="bin" /> 
    <property name="dist.dir" location="dist" /> 
    <property name="docs.dir" location="docs" /> 
    <property name="docs.dir" location="docs" /> 
    <property name="test.report.dir" location="test-output" /> 
    <property name="resources.dir" location="testng.xml" /> 


    <!-- set classpath --> 
    <path id="build.classpath"> 
     <fileset dir="${lib.dir}"> 
      <include name="**/*.jar" /> 
     </fileset> 
    </path> 

    <!-- Clean bin,dist,docs,test-output --> 
    <target name="clean"> 
     <delete dir="${build.dir}" /> 
     <delete dir="${dist.dir}" /> 
     <delete dir="${docs.dir}" /> 
     <delete dir="${test.report.dir}" /> 
    </target> 

    <!-- Create build,dist,docs,test-output--> 
    <target name="makedir"> 
     <mkdir dir="${build.dir}" /> 
     <mkdir dir="${dist.dir}" /> 
     <mkdir dir="${docs.dir}" /> 
    </target> 

    <!-- Compile Java code--> 
    <target name="compile" depends="clean,makedir"> 
     <javac includeantruntime="false" srcdir="${src.dir}" destdir="${build.dir}" classpathref="build.classpath" /> 
    </target> 

    <!-- Create Javadocs--> 
    <target name="docs" depends="compile"> 
     <javadoc packagenames="src" sourcepath="${src.dir}" destdir="${docs.dir}"> 
      <fileset dir="${src.dir}"> 
       <include name="**/*.java" /> 
      </fileset> 
     </javadoc> 
    </target> 

    <!-- Make jar using Java class files--> 
    <target name="jar" depends="compile"> 
     <jar destfile="${dist.dir}\myna.ant.test.jar" basedir="${build.dir}"> 
      <manifest> 
       <attribute name="Main-class" value="myPack2.TestNGMain" /> 
      </manifest> 
     </jar> 
    </target> 

    <!-- Define task for TestNG--> 
    <taskdef name="testng" classname="org.testng.TestNGAntTask" classpathref="build.classpath"> 
     <classpath location="lib/testng-6.8.5.jar" /> 
    </taskdef> 

    <!-- Mention the TestNG Task and Make Test Reports--> 
    <target name="runTest" depends="compile,jar,docs"> 
     <mkdir dir="${test.report.dir}" /> 
     <testng outputdir="${test.report.dir}" haltOnFailure="true" classpathref="build.classpath"> 
      <xmlfileset dir="." includes="testng.xml" /> 
     </testng> 
    </target> 

    <!-- Default Main Target--> 
    <target name="main" depends="runTest"> 
     <description>Main Application</description> 
    </target> 

</project> 

在控制檯

Buildfile: /home/vaav/workspace/AntBasics/build.xml 
clean: 
    [delete] Deleting directory /home/vaav/workspace/AntBasics/bin 
    [delete] Deleting directory /home/vaav/workspace/AntBasics/dist 
    [delete] Deleting directory /home/vaav/workspace/AntBasics/docs 
    [delete] Deleting directory /home/vaav/workspace/AntBasics/test-output 
makedir: 
    [mkdir] Created dir: /home/vaav/workspace/AntBasics/bin 
    [mkdir] Created dir: /home/vaav/workspace/AntBasics/dist 
    [mkdir] Created dir: /home/vaav/workspace/AntBasics/docs 
compile: 
    [javac] Compiling 3 source files to /home/vaav/workspace/AntBasics/bin 
jar: 
     [jar] Building jar: /home/vaav/workspace/AntBasics/dist/myna.ant.test.jar 
docs: 
    [javadoc] Generating Javadoc 
    [javadoc] Javadoc execution 
    [javadoc] Loading source file /home/vaav/workspace/AntBasics/src/myPack/Test1.java... 
    [javadoc] Loading source file /home/vaav/workspace/AntBasics/src/myPack2/TestMain.java... 
    [javadoc] Loading source file /home/vaav/workspace/AntBasics/src/myPack2/TestNGMain.java... 
    [javadoc] Constructing Javadoc information... 
    [javadoc] /home/vaav/workspace/AntBasics/src/myPack2/TestNGMain.java:3: error: package org.testng.annotations does not exist 
    [javadoc] import org.testng.annotations.Test; 
    [javadoc]       ^
    [javadoc] /home/vaav/workspace/AntBasics/src/myPack2/TestNGMain.java:8: error: cannot find symbol 
    [javadoc]  @Test 
    [javadoc] ^
    [javadoc] symbol: class Test 
    [javadoc] location: class TestNGMain 
    [javadoc] Standard Doclet version 1.8.0_45 
    [javadoc] Building tree for all the packages and classes... 
    [javadoc] javadoc: warning - Class Test not found. 
    [javadoc] javadoc: warning - Class Test not found. 
    [javadoc] javadoc: warning - Class Test not found. 
    [javadoc] javadoc: warning - Class Test not found. 
    [javadoc] javadoc: warning - Class Test not found. 
    [javadoc] Building index for all the packages and classes... 
    [javadoc] Building index for all classes... 
    [javadoc] Generating /home/vaav/workspace/AntBasics/docs/help-doc.html... 
    [javadoc] 8 warnings 
    [javadoc] javadoc: warning - Class Test not found. 
runTest: 
    [mkdir] Created dir: /home/vaav/workspace/AntBasics/test-output 
    [testng] Error: A JNI error has occurred, please check your installation and try again 
    [testng] Exception in thread "main" java.lang.NoClassDefFoundError: com/beust/jcommander/ParameterException 
    [testng]  at java.lang.Class.getDeclaredMethods0(Native Method) 
    [testng]  at java.lang.Class.privateGetDeclaredMethods(Class.java:2701) 
    [testng]  at java.lang.Class.privateGetMethodRecursive(Class.java:3048) 
    [testng]  at java.lang.Class.getMethod0(Class.java:3018) 
    [testng]  at java.lang.Class.getMethod(Class.java:1784) 
    [testng]  at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544) 
    [testng]  at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:526) 
    [testng] Caused by: java.lang.ClassNotFoundException: com.beust.jcommander.ParameterException 
    [testng]  at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
    [testng]  at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    [testng]  at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 
    [testng]  at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    [testng]  ... 7 more 

BUILD FAILED 
/home/vaav/workspace/AntBasics/build.xml:71: The tests failed. 

Total time: 1 second 

下面是我的Java代碼

package myPack2; 
import org.testng.annotations.Test; 
import myPack.Test1; 
public class TestNGMain { 

    @Test 
    public void getTest(){ 
     Test1 test = new Test1(); 
     System.out.println("Result===========> "+test.division(20, 10)); 
    } 

} 

的testng.xml

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" > 

<suite name="AntBasics"> 
    <test name="order"> 
     <classes> 
      <class name="myPack2.TestNGMain" /> 
     </classes> 
    </test> 
</suite> 
+0

'[TestNG的]例外在線程 「主要」 java.lang.NoClassDefFoundError:COM /博伊斯特/ jcommander/ParameterException ' –

+0

我應該怎麼做? – Anitha

+0

似乎你錯過了一些庫 –

回答

相關問題