30678


`Android Studio` の `Local Unit Test` でAndroidに依存しないコードのテストを書いているのですが、  
テスト中のみ一部の依存ライブラリを使わないようにする設定は可能でしょうか？

`build.gradle` には以下のように記述しているのですが、

[code]

    dependencies {
        compile 'org.slf4j:slf4j-android:1.7.20'
    
        testCompile 'org.slf4j:slf4j-api:1.7.20'
    }
    
[/code]

Local Unit Test中にも前者のライブラリが使われてしまうため、そこで落ちてしまいます。

なにか方法をご存じの方がいましたらご教示ください。


CC BY-SA 3.0
2016-10-29T06:06:06.260
29978
2016-11-26T03:55:43.760
2016-10-29T06:11:43.340
915
915
question
android java gradle junit
AndroidのLocal Unit Test時に一部の依存ライブラリを除外したい


一つの方法は、`org.slf4j:slf4j-android:1.7.20`を使わないproduct
flavorを定義する事だと思います。そのライブラリを使用する部分をラッパークラスに移せば、依存を分離できます。

例えば、  
`prodCompile 'org.slf4j:slf4j-android:1.7.20'`

[code]

    productFlavors {
        stub {
    
        }
        ...//　他のproduct flavor
        prod {
    
        }
    }
    
[/code]

コマンドラインからunit testを実行するなら、`testStubDebugUnitTest`で実行できます。Android
Studioからなら、Build VariantがstubDebugの状態から実行です。

参考までに。<http://www.migapro.com/include-library-based-on-product-flavor/>


CC BY-SA 3.0
2016-11-26T03:55:43.760
30678
2016-11-26T03:55:43.760
19721
29978
answer