4

ここに示すのとまったく同じコードでテスト プロジェクトを作成しました。

http://developer.android.com/tools/testing/testing_ui.html

Android 仮想デバイスに jar ファイルをアップロードしたので、テストを実行する準備が整いました。しかし、コンソールには常に次の出力が表示されます。

INSTRUMENTATION_STATUS: ストリーム=

WatcherResultPrinter= のテスト結果

時間: 0.0

OK (0 テスト)

INSTRUMENTATION_STATUS_CODE: -1


次のコードで簡単なテストも作成しました。

public void FailedTest() throws UiObjectNotFoundException {
    assertTrue("This test was executed", false);
}

ui 要素を使用したコードに問題がある場合。

パッケージ名はTestsクラス名Loginなので、次のコマンドを実行します。

adb shell uiautomator runtest TestProject.jar -c Tests.Login

編集

実際のデバイスで実行すると、次のようになります。

uiautomator: 許可が拒否されました

4

1 に答える 1

3

最初のステップとして、jUnit 3 で使用される標準的な規則に一致するようにテスト メソッドの名前を変更できますか。つまりpublic void testWhatever() { ... }、名前の最初の 4 文字は小文字で「test」にする必要があります。署名は public void であり、メソッドはそうではありません。任意のパラメーターを取ります。

同様に、パッケージ名を org.example.tests などのより標準的な小文字の規則に変更できますか? ファイルが Tests.java (およびクラスも Tests と呼ばれる) と呼ばれる場合、次のように呼び出すことができるはずです。

adb shell uiautomator runtest Tests.jar -c com.example.tests.Tests

これらが役に立たない場合は、Tests.java ファイルのコード全体を含めるように質問を修正できますか?

注: 旅行中のため、この段階ではコードを再現しようとはしていません。私の提案で問題のブロックが解除されない場合は、そうすることができます。

個別にフォローアップしますuiautomator: permission denied。UI Automator テストは実際のデバイスで実行されます。デバイスをルート化する必要はありません。標準の Android 4.2.x デバイスで実行しています。

于 2013-04-12T13:51:20.013 に答える