2017-01-25 3 views
5

私たちのアプリには2種類のフレーバがあり、もう1つのフレーバは他のフレーバにはないフレーバ(FlavorSpecificClass)があります。 src/testフォルダにFlavorSpecificClassのjunitテストがあります。これは、クラスがそのバリ​​アントに存在しないため、コアのバリアントにあるときにはコンパイルされません。ユニットテストの方法(junit)Androidフレーバ/バリアント - クラスは存在しません

FlavorSpecificClassへの参照をコメントアウトしない限り、バリアントごとに別々のユニットテストを行う方法が見つからず、私たちのコアバリアントでコードがコンパイルされません。どうすればこの問題を回避できますか?

答えて

3

あなたはgradleを使用していると仮定します。

このためには、 'test'ディレクトリと同じ場所にある別のディレクトリが必要です。ディレクトリに「test [BuildVariant] ' 」という名前を付け、そのディレクトリ内にそのビルドバリアントのテストを行います。

は、バリアントのデバッグを構築しているあなただけのGradleを使用してデバッグビルドバリアント

-debug/java/... 
-main/java/... 
-test/java/[your tests] 
-testDebug/java/[your tests for build variant debug] 
+0

はいているクラスをテストしたい場合は、あなたのディレクトリ構造は、次のようになりますと仮定します。私はこれを試して、デバッグバリアントが選択されている場合にのみtestDebugフォルダの下でテストを実行するように動作しますが、主なバリアントの問題はデバッグに存在するクラスのためにコンパイルされません。このクラスはtestDebugフォルダ内のテストでのみ記述されていますが、メインのバリアントはまだコンパイルされて実行されません。 – DDM

+0

それはあなたの主な変種がクラスがそこに存在することを意味します。そのクラスをすべてのバリアントに追加する必要があるかもしれません。他のバリアントは、オペレーションのないメソッドを持つことがあります。 –

+1

私たちはそれを理解しました。私がtestDebugフォルダを作成したら、New - > Folder - > Java Folderを選択してjavaフォルダを作成しました。これは自動的にbuild.gradleのメインソースセットに 'src/testDebug/java'を追加しました。何がうまくいったのは、New - > Directoryを使用してjavaフォルダを作成するだけで、build.gradleファイルは変更されません。 – DDM

関連する問題