ビルドでいくつかの製品フレーバーを指定するために Gradle を使用していますが、シャドウ アプリケーションのコンテキストによって検出されるパッケージ名はカスタムのものではなく、デフォルトのマニフェストのものです。ただし、ビルドされた apk はカスタム パッケージ名を報告します。
テストから:
final Context context = Robolectric.getShadowApplication().getApplicationContext();
System.out.println("Package name is: " + context.getPackageName());
http://tools.android.com/tech-docsによると:
フレーバーのパッケージ名をオーバーライドしても、R クラスが生成される場所には影響しません。これは、最終的な APK が作成されたときにのみ適用されます。
...これは、フレーバーがビルド プロセスの一部にのみ適用されるように聞こえます。テストを構築するときにフレーバーを使用する方法についてのアイデアはありますか?