ANT: Build Failed:创建任务或类型测试失败


<project name="name" default="test" basedir=".">
   <!-- Define <testng> task -->
<taskdef resource="testngtasks"> 
      <classpath>
         <pathelement location="/lib/testng-6.8.5.jar"/>
      </classpath>
 </taskdef>
   <property name="testdir" location="test" />
   <property name="srcdir" location="src" />
   <property name="libdir" location="lib" />
   <property name="full-compile" value="true" />
   <path id="classpath.base"/>
   <path id="classpath.test">
   <fileset dir="${libdir}">
      <include name="**/*.jar" />
   </fileset>
   <pathelement location="${testdir}" />
   <pathelement location="${srcdir}" />
   <path refid="classpath.base" />
   </path>
   <target name="clean" >
      <delete verbose="${full-compile}">
         <fileset dir="${testdir}" includes="**/*.class" />
      </delete>
    <echo>Cleaned Successfully.</echo>
   </target>
   <target name="compile" depends="clean">
      <javac srcdir="${srcdir}" destdir="${testdir}" verbose="${full-compile}">
         <classpath refid="classpath.test"/>
      </javac>
    <echo>Java file compiled Successfully.</echo>
   </target>
   <target name="test" depends="compile">
      <testng outputdir="${testdir}" classpath="classpath.test"> 
         <xmlfileset dir="${srcdir}" includes="TestNG.xml"/> 
      </testng>
   </target>
</project>

收到以下错误:
构建失败
问题:创建任务或类型测试失败
原因:名称未定义。
动作:检查拼写。
操作:检查是否已经声明了任何自定义任务/类型。
动作:检查是否有/声明发生。

它工作,但现在我收到另一个错误:

test:    [testng] java.lang.NoClassDefFoundError: com/beust/jcommander/ParameterExcept
    ion
       [testng]     at java.lang.Class.getDeclaredMethods0(Native Method)
       [testng]     at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
       [testng]     at java.lang.Class.getMethod0(Unknown Source)
       [testng]     at java.lang.Class.getMethod(Unknown Source)
       [testng]     at sun.launcher.LauncherHelper.getMainMethod(Unknown Source)
       [testng]     at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
       [testng] Caused by: java.lang.ClassNotFoundException: com.beust.jcommander.Pa
    rameterException
       [testng]     at java.net.URLClassLoader$1.run(Unknown Source)
       [testng]     at java.net.URLClassLoader$1.run(Unknown Source)
       [testng]     at java.security.AccessController.doPrivileged(Native Method)
       [testng]     at java.net.URLClassLoader.findClass(Unknown Source)
       [testng]     at java.lang.ClassLoader.loadClass(Unknown Source)
       [testng]     at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
       [testng]     at java.lang.ClassLoader.loadClass(Unknown Source)
       [testng]     ... 6 more
       [testng] The tests failed.
    BUILD SUCCESSFUL
    Total time: 3 seconds

下面是claspath .test,prop的输出:

<path>libapache-mime4j-0.6.jar;
<path>libbsh-1.3.0.jar;
<path>cglib-nodep-2.1_3.jar;
<path>commons-codec-1.9.jar;
<path>commons-collections-3.2.1.jar;
<path>commons-exec-1.1.jar;
<path>commons-io-2.4.jar;
<path>commons-jxpath-1.3.jar;
<path>commons-lang3-3.3.2.jar;
<path>commons-logging-1.1.3.jar;
<path>cssparser-0.9.14.jar;
<path>gson-2.3.1.jar;
<path>guava-18.0.jar;
<path>hamcrest-core-1.3.jar;
<path>hamcrest-library-1.3.jar;
<path>libhtmlunit-2.15.jar;
<path>libhtmlunit-core-js-2.15.jar;
<path>libhttpclient-4.3.6.jar;
<path>libhttpcore-4.3.3.jar;
<path>libhttpmime-4.3.6.jar;
<path>libini4j-0.5.2.jar;
<path>libjcommander-1.29.jar;
<path>libjetty-websocket-8.1.8.jar;
<path>libjna-3.4.0.jar;
<path>libjna-platform-3.4.0.jar;
<path>libjunit-dep-4.11.jar;
<path>libnekohtml-1.9.21.jar;
<path>libnetty-3.5.7.Final.jar;
<path>liboperadriver-1.5.jar;
<path>libphantomjsdriver-1.2.1.jar;
<path>libprotobuf-java-2.4.1.jar;
<path>libsac-1.3.jar;
<path>libselenium-java-2.45.0-srcs.jar;
<path>libselenium-java-2.45.0.jar;
<path>libserializer-2.7.1.jar;
<path>libtestng-6.8.5.jar;
<path>libxalan-2.7.1.jar;
<path>libxercesImpl-2.11.0.jar;
<path>libxml-apis-1.4.01.jar;

我想它找不到jar。

<taskdef resource="testngtasks" classpath="/full/path/to/testng.jar"> 
</taskdef>

或者将test .jar放在ANT_HOME/lib中,并使用:

<taskdef resource="testngtasks" classpath="testng.jar"> 
</taskdef>

您应该将jar添加到您的classpath.test

 <path id="classpath.test">
    <fileset dir="lib">
        <include name="**/*.jar"/>
    </fileset>  
  </path>

com/beust/jcommander/ParameterException定义在哪里?

你可以打印类路径,以确保jar被包含在其中。

<pathconvert property="classpath.test.prop" refid="classpath.test"/>
<echo>Classpath is ${classpath.test.prop}</echo>

在测试任务调用

中应该使用classpathref而不是classpath
<testng outputdir="${testdir}" classpathref="classpath.test"> 
         <xmlfileset dir="${srcdir}" includes="TestNG.xml"/> 
</testng>

相关内容

  • 没有找到相关文章

最新更新