私たちのアプリには2種類のフレーバがあり、もう1つのフレーバは他のフレーバにはないフレーバ(FlavorSpecificClass)があります。 src/testフォルダにFlavorSpecificClassのjunitテストがあります。これは、クラスがそのバリアントに存在しないため、コアのバリアントにあるときにはコンパイルされません。ユニットテストの方法(junit)Androidフレーバ/バリアント - クラスは存在しません
FlavorSpecificClassへの参照をコメントアウトしない限り、バリアントごとに別々のユニットテストを行う方法が見つからず、私たちのコアバリアントでコードがコンパイルされません。どうすればこの問題を回避できますか?
はいているクラスをテストしたい場合は、あなたのディレクトリ構造は、次のようになりますと仮定します。私はこれを試して、デバッグバリアントが選択されている場合にのみtestDebugフォルダの下でテストを実行するように動作しますが、主なバリアントの問題はデバッグに存在するクラスのためにコンパイルされません。このクラスはtestDebugフォルダ内のテストでのみ記述されていますが、メインのバリアントはまだコンパイルされて実行されません。 – DDM
それはあなたの主な変種がクラスがそこに存在することを意味します。そのクラスをすべてのバリアントに追加する必要があるかもしれません。他のバリアントは、オペレーションのないメソッドを持つことがあります。 –
私たちはそれを理解しました。私がtestDebugフォルダを作成したら、New - > Folder - > Java Folderを選択してjavaフォルダを作成しました。これは自動的にbuild.gradleのメインソースセットに 'src/testDebug/java'を追加しました。何がうまくいったのは、New - > Directoryを使用してjavaフォルダを作成するだけで、build.gradleファイルは変更されません。 – DDM