2013-10-14 21 views
5

最近私はアンドロイドのテストを開始しました。android uiautomator runtestエラーがクラスを見つけられませんでした

開発者サイトからのチュートリアル私は数回の作業を経て、いくつかの問題を抱えて解決した後、もっと大きな問題を抱えています。

私はプロジェクトを作成し、2つのjarファイルをインポートして、Javaテストケースシナリオを作成しました(チュートリアルの1つです)。 その後、私はシェルコマンドラインでもっとも優れたプロジェクトを作成しました。 build.xmlがjarファイルを作成し、それを私のデバイスにプッシュしました。

これまでのところ、すべてがうまくいきました。

しかし、コマンドラインで私のテストを実行するためにトライン:

INSTRUMENTATION_RESULT: shortMsg = java.lang.RuntimeException
INSTRUMENTATION_RESULT: longMsg=Didn't find class "c.d.d.DeviceUnlockingPseudoCodeTest on Path: /system/framework/android.test.runner.jar: /system/framework/uiautomator.jar:: /data/local/tmp/DeviceUnlocker.jar

INSTRUMENTATION_CODE: 0

+0

で使われているものです、あなたのコードの一部を投稿してくださいできますか? – Rilwan

+0

私のコードの一部は、開発者サイト [Androidデベロッパー](http://developer.android.com/tools/testing/testing_ui.html)からのものであり、このサイトを構成しています: [EveryOneTests](http: //everybodytests.blogspot.de/2013/01/unlocking-your-android-test-devices.html) 自分自身からの唯一のコード部分は、私の答え –

+0

のコードでbuild.xmlファイルを追加していました。logcat dumpを投稿してくださいまた、RuntimeExceptionがどこに来るのかを調べることができます。 –

答えて

0
  1. 新しいJavaProjekt(輸入JUnitのandroid.jar uiautomator.jar
  2. adb -s <ANDROID_SERIAL> shell uiautomator runtest DeviceUnlocker.jar -c c.d.d.DeviceUnlocker 
    

    私はエラーを取得します

  3. パッケージを作成するcdd
  4. TestCaseデバイスをコピーすると、疑似テストケースがプロジェクトに追加されます
  5. cmdを実行する 4.1。 "ANDROID_HOME ="をsdkの場所に設定してください 4.2。

<delete dir="jar"/>

<mkdir dir="jar" />

: コードを追加しました:\ツールは、\アンドロイドはprojPath createコマンドを使用して作成されました
  • 編集のbuild.xmlは-p "アンドロイド-16" -t -n名前をuitestprojekt作成します
    <javac destdir="bin" encoding="UTF-8" debug="on" target="1.6" includeantruntime="false"> 
        <src path="src" /> 
    </javac> 
    <jar destfile="jar/uiautomator.jar"> 
        <fileset dir="bin" /> 
    </jar> 
    
    1. antbuild
    2. CMDとして実行 - データ/ローカル/ tmpに/jar/uiautomator.jar> CD ANDROID_HOME-> CDプラットフォームツール
    3. adbのプッシュ
    4. ADB -sは、シェルだったuiautomator RUNTEST DeviceUnlocker.jar -c cddDeviceUnlocker

    私は

    おかげ

  • +0

    正しくコンパイルできましたか? '[javac]'の行を見せていたのですか? 'create'コマンドで言及されたプロジェクトパスは正しいですか? 'ant clean build'を試してみませんか?まだ失敗します - >次に、クラス内で基本的なコードを試してみてください(デバイスを起動するだけです)。同じような問題があったので、上記のすべてをクリアする必要がありました。それは私のために働く。 – Rilwan

    +0

    私は自分のリンクを右に持っていると思います。 私はシステム環境変数がantに設定されていないため、私はeclipse ide内でantビルドを実行します。上記の清掃は何でしたか?私は疑問符:-)を参照することができます: –

    +0

    とそれは行javacを表示し、ビルドjarfile –

    0

    を行ってきたすべてのステップは、あなたがアンドロイドDEXにJavaクラスをコンパイルしたことを確認してください!

    私は純粋なJavaの "jar"パッケージを/ data/tmp /に置いたときに同じ問題を抱えました。

    プロジェクトがdevice-unlockであると仮定します

    cd device-unlock 
    android create uitest-project -n device-unlock -t 1 -p . 
    and build 
    

    今、あなたはあなたがclasses.dexが表示されますジップで開き、bin/device-unlock.jarにdexedのjarパッケージを見つけることができます。

    このjarでは、テストを続行しても問題ありません。

    0

    私は正確に同じ問題を抱えていたし、それを修正するために迅速なhaxxを作っ:

    ことによってそれを解決:あなたUiautomationTestプロジェクトとのbin /フォルダのコピー からクラスファイルにアクセスしてください

    1. (s)。私の場合は、フォルダ構造全体をコピーしました com/poc/MyTest.class
    2. App-Under-Testプロジェクトとクラスデータを越えて bin /フォルダに移動します。私の場合は、COM/POC/MyTest.class は、/ comの下、既存のクラスにマージされ
    3. 再構築「Antビルド」
    4. 再デプロイとUiAutomationプロジェクトを、今あなたがそれを実行することができます!

    これは単なる回避策ですが、それは根本ケースを識別 - uiautomatorテストの実行中にテストケースクラスはUiAutomatorのbuildstep

    0

    から除外されていることを以下の方法

    例で、それを次のコマンドを実行します。

    これは動作するはずです。

    1

    大丈夫最も簡単な方法は、新しいAndroidのjunitプロジェクトを作成することです。

    私はこれが多かれ少なかれuiautomatorだと思う。 と私は

    uiautomatorがまだ実行されていません...私が間違っているなら、私を修正...あなたは同じoportunitiesを持っているかもしれないと思う...と私はまた、アンドロイド自体からuibuild.xmlでいくつかのバグを発見した

    あなたの助けのための

    <target name="test" description="Runs tests"> <!-- todo: fix this --> <fail message="Launching tests from Ant not supported yet" />

     <exec executable="${adb}" failonerror="true"> 
         <arg line="${adb.device.arg}" /> 
         <arg value="shell" /> 
         <arg value="uiautomator" /> 
         <arg value="runtest" /> 
         <arg value="${out.filename}" /> 
         <arg value="-e" /> 
         <arg value="class" /> 
         <arg value="com.android.uiautomator.samples.skeleton.DemoTestCase" /> 
        </exec> 
    </target>` 
    

    感謝。私にとってuiautomatorはもうオプションではありません。 について

    0

    -c <classpath>#<testMethod>を使用せずにこのコマンドを実行して、問題がないかどうかを確認することをお勧めします。 それは、端末に出力していることクラス名のチェックを動作する場合-c

    adb -s shell uiautomator runtest DeviceUnlocker.jar 
    
    関連する問題