統合テストがアンドロイドでどのように実行されるか理解できません。ドキュメントを読み、サンプル プロジェクトをセットアップして、テストを正常に実行できました。ただし、自分のプロジェクト用に独自のテストを作成するためにピースを組み合わせる方法については、まったく混乱しています。すでに iOS の統合テストを作成済みで、テスト用に作成した JavaScript ファイルを再利用したいのですが、サンプル アプリでは新しいテスト ファイルを作成したように見えます...? とにかく、私はおそらく欠陥のある理解を説明します。
私の理解は次のとおりです
。1.統合テストのスクリプトが呼び出され、バックがインストールされているかどうかを確認することから始まります。
set -e
which buck > /dev/null || {
echo "React Native uses the Buck build tool to run tests. Please install Buck: https://buckbuild.com/setup/install.html";
exit 1;
}
2. スクリプトは、ネイティブ コードをコンパイルする build gradle のメソッドを呼び出します。(私の gradle スクリプトの実装が同じか、これとは少し異なるかどうかはわかりません)
echo "Compiling native code..."
./gradlew :ReactAndroid:packageReactNdkLibsForBuck
3. スクリプトは、ユーザーが実行したいすべてのテストを含むテストバンドルを作成します。これらのテストがどこにあるのかもわかりません。次に、いくつかの出力が配置されます。
echo "Building JS bundle..."
node local-cli/cli.js bundle --platform android --dev true --entry-file ReactAndroid/src/androidTest/js/TestBundle.js --bundle-output ReactAndroid/src/androidTest/assets/AndroidTestBundle.js
4. 次に、いくつかの buck ファイルを使用して、依存関係がロードされて準備が整い、最終的にデバイスにインストールされます。依存関係が必要なのか、このファイルを完全にコピーする必要があるのか わかりません。
echo "Installing test app on the device..."
buck fetch ReactAndroid/src/androidTest/buck-runner:instrumentation-tests
buck install ReactAndroid/src/androidTest/buck-runner:instrumentation-tests
echo "Running integration tests..."
adb shell am instrument -w com.facebook.react.tests/android.support.test.runner.AndroidJUnitRunner
- 最後は、ロードされてコンパイルされたテストを開始します。
あまり賢明ではない私の説明から推測できるように、私自身のテストとして最小限の機能を実現するためにどのファイルをコピーすればよいかについて、私は非常に混乱しています。この分野でのアドバイスやガイダンスをいただければ幸いです。私が見落としている可能性のあるドキュメントへの参照も問題ありません。ほとんどの場合、これらのテストがどのように実行されるかについて、何らかのフローがあればありがたいと思います。そうすれば、非常に単純なものを実装して自分自身を拡張することができます。(つまり、どのファイルをコピーする必要があるか、どのファイルを変更する必要があるかなど)。