私はRobotiumを使用してAndroidで自動化テストを実行しています。 問題は、一連のテストを実行すると、いずれかのテストによってアプリケーションがクラッシュする場合、それ以上のテストは実行されません。理由: 'プロセスがクラッシュしたために計測が失敗しました。' '。詳細については、デバイスのlogcatを確認してください。Robotiumでアプリケーションクラッシュを処理する
私はrunTest()でtry \ catchを使用しようとしましたが、アプリケーションがクラッシュしたときに例外がスローされません。
public void runTest() throws Throwable {
try {
super.runTest();
} catch (Throwable t) {
String testCaseName = String.format("%s.%s", getClass().getName(), getName());
solo.takeScreenshot(testCaseName);
Logging.w(Logging.TAG.Test, String.format("Captured screenshot for failed test: %s", testCaseName));
t.printStackTrace();
String out = "";
for (StackTraceElement s : t.getStackTrace()) {
out = out + s.toString() + "\n";
}
fail(t.getMessage() + "\n" + out);
}
}
"テストが完了するまでに失敗しました...."というメッセージが表示され、すべてのテストの実行が停止します。
現在のテストに失敗しても問題ありません。次のテストは実行されないという問題があります。誰かがこの問題を解決しましたか?テストからアプリケーション例外を処理する方法はありますか?
アプリケーションが終了に依存している場合、System.exit(0)をfinish()に置き換えるのに役立つことがあります。 –