51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 7041|回复: 4
打印 上一主题 下一主题

ant+Junit单元自动化测试,出错

[复制链接]

该用户从未签到

跳转到指定楼层
#
发表于 2009-12-25 18:30:21 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
用ant+junit建立自动化单元测试,总是提示找不到对应的类文件,编译已经成功了的。用debug信息也看到加载了对应的类文件(AllTestSuite.class)。但就是一直提示错误,大家帮我看看,或者有什么好的方法可以定位呢?
省略号加载表示加载的东西太多,把不必要的就省掉了.
daily_build.xml:
........
        <target name="compile" depends="update">
                <javac srcdir="${src.dir}" destdir="${classes.dir}" debug="true">
                        <classpath>
                                <fileset dir="${lib.dir}">
                                        <include name="**/*.jar"/>
                                </fileset>
                                <fileset dir="${lib.dir.app}">
                                        <include name="**/*.jar"/>
                                </fileset>
                        </classpath>
                </javac>
                <copy todir="${classes.dir}">
                        <fileset dir="${src.dir}">
                                <exclude name="**/*.java"/>
                        </fileset>
                </copy>
        </target>
       
        <target name="build" depends="compile">
                <jar destfile="${build.dir}/${build.name.jar}" basedir="${classes.dir}"/>
        </target>
       
        <!--For Unit testing Compile-->
                <target name="UnitCompile" depends="build">
                        <javac srcdir="${test.dir}" destdir="${testClasses.dir}" debug="true">
                        <classpath>
                                <fileset dir="${lib.dir}">
                                        <include name="**/*.jar"/>
                                </fileset>
                                <fileset dir="${lib.dir.app}">
                                        <include name="**/*.jar"/>
                                </fileset>
                                <fileset dir="/home/nexus/SVN/dailyBuilding/sourceCode/Library/test">
                                        <include name="**/*.jar"/>
                                </fileset>
                                <fileset dir="/home/nexus/SVN/dailyBuilding/lib/org.junit4_4.1.0.1">
                                        <include name="junit-4.1.jar"/>
                                </fileset>
                        </classpath>
                </javac>
                <copy todir="${testClasses.dir}">
                        <fileset dir="${test.dir}">
                                <exclude name="**/*.java"/>
                        </fileset>
                </copy>
        </target>
        <!--End For Unit testing Compile-->
        <!--Run Unit Testing-->
        <target name="test" depends="UnitCompile">
              <mkdir dir="${report.xml}"/>
              <mkdir dir="${report.html}"/>
              <junit printsummary="yes" haltonfailure="no">
                     <classpath>
                                                        <fileset dir="${lib.dir}">
                                                                <include name="**/*.jar"/>
                                                        </fileset>
                                                        <fileset dir="${lib.dir.app}">
                                                                <include name="**/*.jar"/>
                                                        </fileset>
                                                        <fileset dir="/home/nexus/SVN/dailyBuilding/sourceCode/Library/test">
                                                                <include name="**/*.jar"/>
                                                        </fileset>
                                                        <fileset dir="/home/nexus/SVN/dailyBuilding/lib/org.junit4_4.1.0.1">
                                                                <include name="junit-4.1.jar"/>
                                                        </fileset>
                                                        <fileset dir="${build.dir}">
                                                                <include name="**/*.class"/>
                                                        </fileset>
                                        </classpath>
                     <formatter type="xml"/>
                     <batchtest fork="yes" todir="${report.xml}">
                            <fileset dir="${testClasses.dir}" includes="**/*AllTest*.class"/>
                     </batchtest>
              </junit>
              <junitreport todir="${report.html}">
                     <fileset dir="${report.xml}">
                            <include name="*.xml"/>
                     </fileset>
                     <report format="frames" todir="${report.html}"/>
              </junitreport>
       </target>
        <!--End For Run Unit Testing-->
.........



错误:
  <error message="com.nexus.nexusscene.AllTestSuite" type="java.lang.ClassNotFoundException">java.lang.ClassNotFoundException: com.nexus.nexusscene.AllTestSuite
        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:169)
</error>


对应的debug信息:

。。。。。。。。。。。。。
'-classpath'
......
:/home/nexus/SVN/dailyBuilding/sourceCode/MSCR/MSCR_Business/build/testClasses/com/nexus/nexusscene/AllTestSuite.class
......
。。。。。。。。。。


:/usr/apache-ant-1.7.0/lib/ant-launcher.jar:/usr/apache-ant-1.7.0/lib/ant.jar:/usr/apache-ant-1.7.0/lib/ant-junit.jar'
'org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner'
'com.nexus.nexusscene.AllTestSuite'
'filtertrace=true'
'haltOnError=false'
'haltOnFailure=false'
'formatter=org.apache.tools.ant.taskdefs.optional.junit.SummaryJUnitResultFormatter'
'showoutput=false'
'outputtoformatters=true'
'logtestlistenerevents=true'
'formatter=org.apache.tools.ant.taskdefs.optional.junit.XMLJUnitResultFormatter,/home/nexus/SVN/dailyBuilding/sourceCode/MSCR/MSCR_Business/report/junit/xml/TEST-com.nexus.nexusscene.AllTestSuite.xml'
'crashfile=/home/nexus/SVN/dailyBuilding/sourceCode/MSCR/MSCR_Business/junitvmwatcher1579461855.properties'
'propsfile=/home/nexus/SVN/dailyBuilding/sourceCode/MSCR/MSCR_Business/junit73032522.properties'

The ' characters around the executable and arguments are
not part of the command.
    [junit] Running com.nexus.nexusscene.AllTestSuite
    [junit] Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0 sec
fileset: Setup scanner in dir /home/nexus/SVN/dailyBuilding/sourceCode/MSCR/MSCR_Business/report/junit/xml with patternSet{ includes: [*.xml] excludes: [] }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

4#
发表于 2012-2-24 15:00:05 | 只看该作者
收藏先。
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2011-4-12 09:33:37 | 只看该作者
senior tester ,有机会做Tech Leader.
上海,英语口语好,5年+测试经验, 20--30万
要求有软件开发经验,能写自动化测试脚本,优先考虑做性能测试的,优先考虑用过Junit的(Junit就是用脚本写的自动化测试工具),不要做手动测试的


MSN:zxsh3598@hotmail.com
回复 支持 反对

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2010-1-8 18:34:54 | 只看该作者
自己来结贴了。搞定。
<junit printsummary="yes" haltonfailure="no">
                     <classpath>
。。。 。。。
                                                        <fileset dir="${build.dir}">
                                                                <include name="**/*.class"/>
                                                        </fileset>
                                        </classpath>
build.dir 包含了class.dir 和 testClasses.dir不能加载需要执行的类。
修改为:
                                                        <fileset dir="${classes.dir}">
                                                                <include name="**/*.class"/>
                                                        </fileset>
                                                        <pathelement location="${testClasses.dir}"/>
至于为什么一定要用pathelement加载,还不是很清楚。
不过问题总算解决了。
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-26 10:12 , Processed in 0.077734 second(s), 32 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表