gpt4 book ai didi

android - 在 Android 1.6 上运行 jUnit 测试时出现 VerifyError

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:30:36 26 4
gpt4 key购买 nike

这是我尝试在 Android 1.6 上运行的内容:

package com.healthlogger.test;

public class AllTests extends TestSuite
{
public static Test suite()
{
return new TestSuiteBuilder(AllTests.class).includeAllPackagesUnderHere().build();
}
}

和:

package com.healthlogger.test;

public class RecordTest extends AndroidTestCase
{

/**
* Ensures that the constructor will not take a null data tag.
*/
@Test(expected=AssertionFailedError.class)
public void testNullDataTagInConstructor()
{
Record r = new Record(null, Calendar.getInstance(), "Data");
fail("Failed to catch null data tag.");
}
}

主要项目是HealthLogger。这些是从单独的测试项目 (HealthLoggerTest) 运行的。 HealthLogger 和 jUnit4 在 HealthLoggerTest 的构建路径中。 jUnit4 也在 HealthLogger 的构建路径中。 “记录”类位于 com.healthlogger 中。

注释掉“@Test...”和“Record r...”行允许此测试运行。当它们被取消注释时,我得到一个 VerifyError 异常。我被这个严重阻碍了;为什么会这样?


编辑:崩溃后来自 logcat 的一些信息:

    E/AndroidRuntime( 3723): Uncaught handler: thread main exiting due to uncaught exception                     
E/AndroidRuntime( 3723): java.lang.VerifyError: com.healthlogger.test.RecordTest E/AndroidRuntime( 3723): at java.lang.Class.getDeclaredConstructors(Native Method)
E/AndroidRuntime( 3723): at java.lang.Class.getConstructors(Class.java:507) E/AndroidRuntime( 3723): at android.test.suitebuilder.TestGrouping$TestCasePredicate.hasValidConstructor(TestGrouping.java:226)

E/AndroidRuntime( 3723): at android.test.suitebuilder.TestGrouping$TestCasePredicate.apply(TestGrouping.java:215)

E/AndroidRuntime( 3723): at android.test.suitebuilder.TestGrouping$TestCasePredicate.apply(TestGrouping.java:211)

E/AndroidRuntime( 3723): at android.test.suitebuilder.TestGrouping.select(TestGrouping.java:170) E/AndroidRuntime( 3723): at android.test.suitebuilder.TestGrouping.selectTestClasses(TestGrouping.java:160)

E/AndroidRuntime( 3723): at android.test.suitebuilder.TestGrouping.testCaseClassesInPackage(TestGrouping.java:154)

E/AndroidRuntime( 3723): at android.test.suitebuilder.TestGrouping.addPackagesRecursive(TestGrouping.java:115)

E/AndroidRuntime( 3723): at android.test.suitebuilder.TestSuiteBuilder.includePackages(TestSuiteBuilder.java:103)

E/AndroidRuntime( 3723): at android.test.InstrumentationTestRunner.onCreate(InstrumentationTestRunner.java:321)

E/AndroidRuntime( 3723): at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3848)

E/AndroidRuntime( 3723): at android.app.ActivityThread.access$2800(ActivityThread.java:116) E/AndroidRuntime( 3723): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1831)

E/AndroidRuntime( 3723): at android.os.Handler.dispatchMessage(Handler.java:99)

E/AndroidRuntime( 3723): at android.os.Looper.loop(Looper.java:123) E/AndroidRuntime( 3723): at android.app.ActivityThread.main(ActivityThread.java:4203)

E/AndroidRuntime( 3723): at java.lang.reflect.Method.invokeNative(Native Method)

E/AndroidRuntime( 3723): at java.lang.reflect.Method.invoke(Method.java:521)

E/AndroidRuntime( 3723): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)

E/AndroidRuntime( 3723): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549) E/AndroidRuntime( 3723): at dalvik.system.NativeStart.main(Native Method)

最佳答案

当您忘记导出测试项目的所有依赖项时,就会发生这种情况。

在 Eclipse 中,转到项目(主项目和测试项目)的 Java Build Path 属性。转到“组织/导出”选项卡并确保检查所有依赖项(选择所有,除了可能列出的任何 JRE 或类路径容器)。

关于android - 在 Android 1.6 上运行 jUnit 测试时出现 VerifyError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2837973/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com