質問

ここで私は、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」をコメントアウトし、「レコードR ...」の行は、このテストを実行することができます。彼らはコメントを解除しているとき、私はないVerifyError例外を取得します。私はひどくこれによりブロックされています。なぜそれが起こっているのでしょうか?

<時間>

EDIT:クラッシュ後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ビルド・パスのプロパティ(メイン・プロジェクト、およびテストプロジェクトの両方)にアクセスしてください。あなたは(記載されている可能性のあるJREやクラスパスコンテナを除き、すべてを選択)、すべての依存関係を確認整理/エクスポート]タブに移動していることを確認します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top