我安装的是Junit4.
写好了testcase,在Eclipse里是可以执行的,但是手工执行的时候,出错如下:java org.junit.runner.JUnitCore TestSmokeTestForServer
Exception in thread "main" java.lang.NoClassDefFoundError: TestSmokeTestForServer (wrong name: com/sonyericsson/binaryreposystem/client/TestSmokeTestForServer)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:5
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at org.junit.runner.JUnitCore.runMain(JUnitCore.java:89)
at org.junit.runner.JUnitCore.runMainAndExit(JUnitCore.java:53)
at org.junit.runner.JUnitCore.main(JUnitCore.java:45)classpath里有
echo $CLASSPATH
/opt/semc-eclipse/plugins/org.junit_4.8.1.v4_8_1_v20100427-1100/junit.jar:/home/CORPUSERS/28849869/c2dSrc/tools/c2d/WebServer/BinaryRepositoryClient/bin/com/sonyericsson/binaryreposystem/client/大家帮我看看吧,谢谢!
写好了testcase,在Eclipse里是可以执行的,但是手工执行的时候,出错如下:java org.junit.runner.JUnitCore TestSmokeTestForServer
Exception in thread "main" java.lang.NoClassDefFoundError: TestSmokeTestForServer (wrong name: com/sonyericsson/binaryreposystem/client/TestSmokeTestForServer)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:5
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at org.junit.runner.JUnitCore.runMain(JUnitCore.java:89)
at org.junit.runner.JUnitCore.runMainAndExit(JUnitCore.java:53)
at org.junit.runner.JUnitCore.main(JUnitCore.java:45)classpath里有
echo $CLASSPATH
/opt/semc-eclipse/plugins/org.junit_4.8.1.v4_8_1_v20100427-1100/junit.jar:/home/CORPUSERS/28849869/c2dSrc/tools/c2d/WebServer/BinaryRepositoryClient/bin/com/sonyericsson/binaryreposystem/client/大家帮我看看吧,谢谢!
如果那样执行java org.junit.runner.JUnitCore.TestSmokeTestForServer
假设com.sonyericsson.binaryreposystem.client.TestSmokeTestForServer类位于
/home/CORPUSERS/28849869/c2dSrc/tools/c2d/WebServer/BinaryRepositoryClient/bin/com/sonyericsson/binaryreposystem/client/TestSmokeTestForServer.class
那么classpath应该设置为:/opt/semc-eclipse/plugins/org.junit_4.8.1.v4_8_1_v20100427-1100/junit.jar:/home/CORPUSERS/28849869/c2dSrc/tools/c2d/WebServer/BinaryRepositoryClient/bin
/home/CORPUSERS/28849869/c2dSrc/tools/c2d/WebServer/BinaryRepositoryClient/bin/com/sonyericsson/binaryreposystem/client/
这个路径放的都是编译好的.class文件,其中就有TestSmokeTestForServer.class这个class的包名是com.sonyericsson.binaryreposystem.client
我试过执行:
java org.junit.runner.JUnitCore com.sonyericsson.binaryreposystem.client.TestSmokeTestForServerJUnit version 4.8.1
Could not find class: com.sonyericsson.binaryreposystem.client.TestSmokeTestForServer
Exception in thread "main" java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing到底什么地方出了问题呢?
/home/CORPUSERS/28849869/c2dSrc/tools/c2d/WebServer/BinaryRepositoryClient/bin
/com/sonyericsson/binaryreposystem/client/echo $CLASSPATH
/opt/semc-eclipse/plugins/org.junit_4.8.1.v4_8_1_v20100427-1100/junit.jar:/home/CORPUSERS/28849869/c2dSrc/tools/c2d/WebServer/BinaryRepositoryClient/bin/com/sonyericsson/binaryreposystem/client/java org.junit.runner.JUnitCore com.sonyericsson.binaryreposystem.client.TestSmokeTestForServer
JUnit version 4.8.1
Could not find class: com.sonyericsson.binaryreposystem.client.TestSmokeTestForServer
Exception in thread "main" java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribingUbuntu下Classpath直接是用:分割把?
echo $CLASSPATH
/opt/semc-eclipse/plugins/org.junit_4.8.1.v4_8_1_v20100427-1100/junit.jar:/home/CORPUSERS/28849869/c2dSrc/tools/c2d/WebServer/BinaryRepositoryClient/bin/java org.junit.runner.JUnitCore com.sonyericsson.binaryreposystem.client.TestSmokeTestForServer
JUnit version 4.8.1
Could not find class: com.sonyericsson.binaryreposystem.client.TestSmokeTestForServer
Exception in thread "main" java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribingUbuntu下Classpath直接是用:分割把?
一样的,你编译的时候classpath怎么设置的,现在照旧啊!!!
/home/CORPUSERS/28849869/c2dSrc/tools/c2d/WebServer/BinaryRepositoryClient/bin/com/sonyericsson/binaryreposystem/client/
目录。
到底是怎么回事呢
删除线,然后领悟一下。难道,你要为这些不同的class设置N个classpath??!!com.sonyericsson.binaryreposystem.client.Xxxx
com.sonyericsson.binaryreposystem.server.Yyyy
com.sonyericsson.binaryreposystem.server.something.Zzzz
com.sonyericsson.binaryreposystem.common.Aaaa
.....
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project default="test" name="Test TestSmokeTestForServer">
<import file="../BinaryRepositoryWS/build.xml"/>
<property name="TESTDIR" value="."/>
<property name="TEST-DEBUG" value="${TESTDIR}/ant-bin-debug"/>
<property name="REPORTS-DIR" location="reports"/>
<property name="LIB" value="lib" />
<property name="SRC" value="src"/>
<property name="JAVA_COMPILER_VERSION" value="1.6"/>
<property name="DEBUG" value="false" />
<property name="BUILD-DIR" value="ant-bin"/>
<target name="test" depends="compile-test, run-test" />
<target name="compile-test" depends="clean, mkdirs, compile"/>
<target name="compile" depends="mkdirs">
<javac target="${JAVA_COMPILER_VERSION}" srcdir="${SRC}" destdir="${BUILD-DIR}" debug="${DEBUG}">
<classpath refid="webservice-classpath"/>
<classpath refid="webservice-test-classpath"/>
<classpath location="${BUILD-DIR}"/>
</javac>
</target>
<target name="clean">
<delete dir="${TEST-DEBUG}" />
<delete dir="${REPORTS-DIR}" />
<delete dir="${BUILD-DIR}"/>
</target>
<target name="mkdirs">
<mkdir dir="${TEST-DEBUG}"/>
<mkdir dir="${REPORTS-DIR}"/>
<mkdir dir="${BUILD-DIR}"/>
</target>
<target name="run-test" depends="">
<junit fork="yes" forkmode="perTest" printsummary="yes" haltonfailure="no" haltonerror="false" showoutput="true" >
<classpath location="${TEST-DEBUG}"/>
<classpath location="${BUILD-DIR}"/>
<classpath location="${LIB}"/>
<formatter type="xml" />
<test name= "com.sonyericsson.binaryreposystem.client.TestSmokeTestForServer" />
</junit>
</target>
</project>
但是还是报错
<testcase classname="com.sonyericsson.binaryreposystem.client.TestSmokeTestForServer" name="initializationError" time="0.0060">
<error message="org/hamcrest/SelfDescribing" type="java.lang.NoClassDefFoundError">java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
Caused by: java.lang.ClassNotFoundException: org.hamcrest.SelfDescribing
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
</error>请大家帮我看看,谢谢!
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project default="test" name="Test TestSmokeTestForServer">
<import file="../BinaryRepositoryWS/build.xml"/>
<property name="TESTDIR" value="."/>
<property name="TEST-DEBUG" value="${TESTDIR}/ant-bin-debug"/>
<property name="REPORTS-DIR" location="reports"/>
<property name="LIB" value="lib" />
<property name="SRC" value="src"/>
<property name="JAVA_COMPILER_VERSION" value="1.6"/>
<property name="DEBUG" value="false" />
<property name="BUILD-DIR" value="ant-bin"/>
<target name="test" depends="compile-test, run-test" />
<target name="compile-test" depends="clean, mkdirs, compile"/>
<target name="compile" depends="mkdirs">
<javac target="${JAVA_COMPILER_VERSION}" srcdir="${SRC}" destdir="${BUILD-DIR}" debug="${DEBUG}">
<classpath refid="webservice-classpath"/>
<classpath refid="webservice-test-classpath"/>
<classpath location="${BUILD-DIR}"/>
</javac>
</target>
<target name="clean">
<delete dir="${TEST-DEBUG}" />
<delete dir="${REPORTS-DIR}" />
<delete dir="${BUILD-DIR}"/>
</target>
<target name="mkdirs">
<mkdir dir="${TEST-DEBUG}"/>
<mkdir dir="${REPORTS-DIR}"/>
<mkdir dir="${BUILD-DIR}"/>
</target>
<target name="run-test" depends="">
<junit fork="yes" forkmode="perTest" printsummary="yes" haltonfailure="no" haltonerror="false" showoutput="true" >
<classpath location="${TEST-DEBUG}"/>
<classpath location="${BUILD-DIR}"/>
<classpath location="${LIB}"/>
<formatter type="xml" />
<test name= "com.sonyericsson.binaryreposystem.client.TestSmokeTestForServer" />
</junit>
</target>
</project>
但是还是报错,如下:
<testcase classname="com.sonyericsson.binaryreposystem.client.TestSmokeTestForServer" name="initializationError" time="0.0060">
<error message="org/hamcrest/SelfDescribing" type="java.lang.NoClassDefFoundError">java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
Caused by: java.lang.ClassNotFoundException: org.hamcrest.SelfDescribing
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
</error>请大家帮我看一下。谢谢!
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project default="test" name="Test TestSmokeTestForServer">
<import file="../BinaryRepositoryWS/build.xml"/>
<property name="TESTDIR" value="."/>
<property name="TEST-DEBUG" value="${TESTDIR}/ant-bin-debug"/>
<property name="REPORTS-DIR" location="reports"/>
<property name="LIB" value="lib" />
<property name="SRC" value="src"/>
<property name="JAVA_COMPILER_VERSION" value="1.6"/>
<property name="DEBUG" value="false" />
<property name="BUILD-DIR" value="ant-bin"/>
<target name="test" depends="compile-test, run-test" />
<target name="compile-test" depends="clean, mkdirs, compile"/>
<target name="compile" depends="mkdirs">
<javac target="${JAVA_COMPILER_VERSION}" srcdir="${SRC}" destdir="${BUILD-DIR}" debug="${DEBUG}">
<classpath refid="webservice-classpath"/>
<classpath refid="webservice-test-classpath"/>
<classpath location="${BUILD-DIR}"/>
</javac>
</target>
<target name="clean">
<delete dir="${TEST-DEBUG}" />
<delete dir="${REPORTS-DIR}" />
<delete dir="${BUILD-DIR}"/>
</target>
<target name="mkdirs">
<mkdir dir="${TEST-DEBUG}"/>
<mkdir dir="${REPORTS-DIR}"/>
<mkdir dir="${BUILD-DIR}"/>
</target>
<target name="run-test" depends="">
<junit fork="yes" forkmode="perTest" printsummary="yes" haltonfailure="no" haltonerror="false" showoutput="true" >
<classpath location="${TEST-DEBUG}"/>
<classpath location="${BUILD-DIR}"/>
<classpath location="${LIB}"/>
<formatter type="xml" />
<test name= "com.sonyericsson.binaryreposystem.client.TestSmokeTestForServer" />
</junit>
</target>
</project>
但是还是报错,如下:
<testcase classname="com.sonyericsson.binaryreposystem.client.TestSmokeTestForServer" name="initializationError" time="0.0060">
<error message="org/hamcrest/SelfDescribing" type="java.lang.NoClassDefFoundError">java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
Caused by: java.lang.ClassNotFoundException: org.hamcrest.SelfDescribing
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
</error>请大家帮我看一下。谢谢!