2016-04-26 8 views
15

は明らか計装テストの実行が停止される:例外の後でAndroid計測テストを続行するにはどうすればよいですか?例外にインストルメントアプリケーションで発生した場合

テストが完了するまで実行することができませんでした。理由: '例外'のために計測が失敗しました。詳細については、デバイスログキャットを確認してください

カスタムインストルメンテーションランナーでは、これは目的の動作または設定ミスですか?

受け入れテストを自動化するために私はカスタムMonitorinInstrumentation [1]を使用しています。

残念ながら、1回のテストで例外が発生すると、テスト実行はキャンセルされます。テストスイートを完成させ、JUnitのように失敗したテストのみをマークします。

1つのテストで例外が発生した場合に計器全体を終了しないで、(接続された)テストを実行する一般的なアプローチはありますか?何かが間違っている(チェックしたい例えば、いくつかの条件を)行くとき

  1. https://github.com/cucumber/cucumber-jvm/blob/master/examples/android/android-studio/Cukeulator/app/src/androidTest/java/cucumber/cukeulator/test/Instrumentation.java

答えて

2

計装テストは例外を発生させます。通常、try catch文を使っていくつかのテストが失敗するのを避けることができます(またはそれらのチェックを変更する)。 この場合、Dalvik Virtual Machineを停止させる何かがあります。これは、通常、アプリのクラッシュが原因です。テストフローを注意深くチェックして、クラッシュがあるかどうかを分析してください。 また、一部のアクティビティでSystem.exit(0)onDestroy()に使用しないでください。問題が発生する可能性があります。 私はあなたを助けることを望む。

+0

ファーストをチェックしてください。残念ながら、それは私の問題を解決するものではありません。私が言ったように、テスト中のアプリケーションは例外を発生させ、完全な計測を停止させます。テストでtry-catchを追加することはできません。私は解決策を探しています - 計装を使用することが可能な場合 - 計装運転が継続し、アプリケーションがクラッシュする原因となるテストだけが「赤色」と表示されます。 – a11n

+0

私はそれがこの問題の解決策ではないことを知っています。私が言ったように、Dalvik Virtual Machineには何かがあると言われています。私の意見では、これはあなたのコードの何らかのエラーに関連する可能性があるので、あなたのコードをチェックしてください。 いくつかのクラッシュを探し、** onDestroy()**の** System.exit(0)**を呼び出さないようにしてください。 –

+0

System.exit()もonDestroy()も呼び出されません。しかし、インストルメントされたアプリケーションの例外のため、Dalvik VMは停止します。 http://developer.android.com/tools/testing/testing_android.html#Instrumentationを読んだ後、インストルメンテーションはアプリケーションプロセスを開始し、アプリケーションとは何らかの形で独立しているという印象を受けました。しかし、計装されたプロセスが "死ぬ"場合、計器は "死ぬ"と言っていますか?これを切り離す機会はありますか? – a11n

0

あなたは、ドキュメントによると、あなたのルートbuild.gradle

tasks.withType(Test) { 
    ignoreFailures = true 
} 

に配置しようとすることができます

テストのいずれかが失敗した場合、任意のデバイス上で、ビルドは失敗します。

は、あなたの答えのためのすべての多くの感謝のこのandroid testing

+1

私の問題は失敗したビルドではありません。したがって、あなたの提案は残念ながら助けにならないでしょう。 (私の問題は、1つのテストでテスト対象のアプリケーション内で例外が発生した場合、テストスイートが完了しないということです)。 – a11n

関連する問題