まず、問題は Jenkins が Android Emulator への書き込み権限を持っていないことが原因であると想定しています。だから、それは私が最初に知りたいことかもしれません。しかし、これが私がやっていることの背景です。これはすべてジェンキンスの外でもうまく機能することに注意してください。注意すべきもう 1 つのことは、Jenkins をサービスとして実行するようにセットアップしたことです。
Jenkins用のAndroid Emulator Pluginを使用していると述べたように、アプリケーションをインストールし、Androidエミュレーターでいくつかのテストを実行するPULL_SCREENSHOTというJenkinsで実行中のジョブがあります。Jenkins ジョブのエミュレータ構成セクションでは、ADB.exe を使用して作成した既存のデバイスを使用しています。私が抱えている問題は、テストがこのコードを使用してスクリーンショット ディレクトリを作成することになっていることです。
final String path = Environment.getExternalStorageDirectory()+ "/screenshots/";
File dir = new File(path);
if (!dir.exists())
{
dir.mkdirs();
}
しかし、このディレクトリは作成されていません。ファイルシステムを調べて、通常とは異なる場所に表示されているかどうかを確認しましたが、うまくいきませんでした。
これは、Jenkins コンソールからのエラーです。
*\users\jamiemirl.jenkins\jobs\PULL_SCREENSHOTS\workspace>adb pull /sdcard/screenshots c:/screenshots/ remote object '/sdcard/screenshots' does not exist \users.jenkins\jobs\PULL_SCREENSHOTS\workspace>exit 1 Buildステップ 'Windows バッチ コマンドの実行' でビルドが失敗としてマークされました。 完了: 失敗*