1

プロジェクトのテストに問題があります。依存関係を正しく構成しましたが、Robotium を使用してテストを実行できません。私のアクティビティがActivityだけを拡張する場合-すべて問題ありません.「SherlockActivityを拡張する」を追加すると、

java.lang.RuntimeException: Exception during suite construction
at android.test.suitebuilder.TestSuiteBuilder$FailedToCreateTests.testSuiteConstructionFailed(TestSuiteBuilder.java:238)

Caused by: java.lang.NoClassDefFoundError: com.calculator.Main (example project from Robotium www). 

Intellij と Eclipse でテストを実行しようとしました。両方の IDE で同じ結果が得られました。

編集:それは私のマニフェストです

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.calculator.test"
      android:versionCode="1"
      android:versionName="1.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name">

    <uses-library android:name="android.test.runner" />
    </application>
    <uses-sdk android:minSdkVersion="8" />
    <instrumentation android:targetPackage="com.calculator" android:name="android.test.InstrumentationTestRunner" />
</manifest> 
4

2 に答える 2

1

正しい依存関係でクラスをコンパイルしたようですが、実行時にそれらを指定していません。IntelliJとEclipseはどちらも、コンパイルのように実行するために同じ構成を使用する必要があるため、問題は、どのようにテストを実行したかということです。

于 2012-10-08T12:29:24.297 に答える
0

使用したエディタで問題ありません。

adb シェルからアクティビティを開始するための一般的な構文は次のとおりです。

adb shell am start -a android.intent.action.MAIN -n com.package.name/com.package.name.ActivityName

そのため、robotium から任意のアクティビティを呼び出すときは、「 Activity を拡張する」必要があります。

そして、「 extends SherlockActivity 」 は、上記の構文が必要なアクティビティ名のみであるため、robotium では機能しません。したがって、他のものを拡張しても機能しません。

ノート :

[1] まず、以下の構文でアクティビティを開いてみてください

adb shell am start -a android.intent.action.MAIN -n com.calculator/com.calculator.Main

ここで「 Main 」は、パッケージ「 com.calculator 」のアクティビティです。

[2]これがうまくいくなら、ロボティウムでもうまくいくでしょう。

このコンセプトがお役に立てば幸いです。ありがとう。

于 2012-10-08T13:23:02.997 に答える