Copy files back from Android testbed emulator to host
まだ誰も着手していません。
- 主要言語
- Python
- スター
- 77.2k
- フォーク
- 35.9k
- PR マージ指標
- PR 指標を取得中
説明
Feature or enhancement
Proposal:
Currently I am trying to add Android support for aiohttp and I am using cibuildwheel to build an test the wheel. For simplicity I am using the default managed Android emulator.
One missing piece, however, is measuring the code coverage of the tests. It is possible to track coverage using pytest-cov, but I haven’t yet found a way to copy the generated .coverage file from the managed Android emulator back to the host PC for further processing. Using adb pull doesn’t work, since the managed Android emulators shut down automatically after the tests. Of course, I could work with a connected Android emulator where the emulator stays on after the tests, allowing me to copy the necessary data using adb pull, but then I would have to manually start an Android emulator before calling cibuildwheel. I would prefer to avoid this extra effort.
Therefore, I suggest modifying the android.py script and the Android testbed to provide a generic way to copy data from the Android emulator back to the host. Here are a few ideas I have:
On idea is to copy the encode files as base64 and output them via logcat. This would be a simple but probably not very practical approach, especially if the files are large.
A propably better solution would be to use the (pretty bad documented) folders build/outputs/managed_device_android_test_additional_output and build/outputs/connected_android_test_additional_output to copy files from the emulator to the host. See for example here or here.
As far as I can tell, this feature would actually only be relevant for third-party packages built using cibuildwheel, for example. However, since cibuildwheel uses the android.py script and the Android testbed project from CPython, such a feature would need to be added to CPython and cannot be implemented within cibuildwheel itself.
I already have a working draft that uses managed_device_android_test_additional_output, but I wanted to discuss this first to see if it’s a useful addition or if it’s actually out of scope for CPython?
@mhsmith What do you think?
Has this already been discussed elsewhere?
No response given
Links to previous discussion of this feature:
No response
Linked PRs
- gh-149271
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
まず android.py スクリプトと Android testbed を調査し、次に managed_device_android_test_additional_output と connected_android_test_additional_output がどのように使用されているかを確認します。テスト完了後に、管理対象エミュレーターで生成されたファイルをホスト上で利用可能にする汎用的なメカニズムが実装され、その中にさらなる処理のための .coverage ファイルも含まれるようになれば、変更は完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- android, python
- 領域
- mobile, testing
- issue の種類
- 機能追加
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 35/100