1

嗨,我在 Eclipse 中尝试运行单元测试时遇到以下错误:

java.lang.NoClassDefFoundError: android/test/AndroidTestCase
    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 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.loadClass(RemoteTestRunner.java:693)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.loadClasses(RemoteTestRunner.java:429)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:452)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: java.lang.ClassNotFoundException: android.test.AndroidTestCase
    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)
    ... 18 more

测试班

public class ResponseUtilTest extends AndroidTestCase {

    private BubbleResponseUtil responseUtil;

    private static final String TAG = ResponseUtilTest.class.getSimpleName();

    @Override
    protected void setUp() throws Exception {
        super.setUp();

        responseUtil = new ResponseUtil();
    }

    @Override
    protected void tearDown() throws Exception {
        super.tearDown();
    }

    public void testGetdata() {

    }

    public void testIsOkMessage() {

    }

    public void testIsRetryMessage() {

    }

    public void testIsMatchedCRC() {

    }

}

感谢我使用从 android dev 网站获得的 Android sdk Eclipse 版本。

再次感谢

4

2 回答 2

3

您需要AndroidTestCase向设备/模拟器运行。我猜您只是将其作为常规JUnit3/JUnit4测试用例运行?

于 2013-06-26T10:23:48.043 回答
0

Ninetwozero 是正确的。没有可以运行 AndroidTestCase 的设备。您要么需要附加真实设备,要么创建具有设备特性的 Android 虚拟设备(模拟器)。

右键单击包含测试的项目,然后运行方式->运行配置。选择Android JUnit Test,点击“New Launch Configuration”按钮。转到“目标”选项卡;使用右下角的“管理器”按钮创建新的模拟器。我确信其他文章涵盖了如何设置模拟器。

于 2014-02-03T15:37:42.203 回答