2016-02-20 13 views
0

У меня есть один проект библиотеки и некоторые основные проекты, которые зависят от этого проекта библиотеки.Антенные контрольно-измерительные приборы и проекты библиотеки

Я хочу написать тесты для основных проектов, но тесты общих функций должны быть помещены в проект библиотеки для уменьшения дублирования кода.

Я добавил следующие строки в библиотеки build.gradle:

dependencies { 
    compile Dependencies.appCompat 
    compile Dependencies.recyclerView 
    compile Dependencies.cardView 
    compile Dependencies.playAds 
    compile Dependencies.googleAnalytics 

    compile('com.crashlytics.sdk.android:crashlytics:[email protected]') { 
     transitive = true 
    } 

    // Unit testing dependencies 
    androidTestCompile 'junit:junit:4.12' 
    // Set this dependency if you want to use the Hamcrest matcher library 
    androidTestCompile 'org.hamcrest:hamcrest-library:1.3' 
    androidTestCompile 'com.android.support.test:runner:+' 
    androidTestCompile 'com.android.support.test:rules:+' 
    androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.1' 
    androidTestCompile 'org.mockito:mockito-core:1.+' 
    androidTestCompile "com.google.dexmaker:dexmaker:1.2" 
    androidTestCompile "com.google.dexmaker:dexmaker-mockito:1.2" 
    androidTestCompile 'com.android.support.test.uiautomator:uiautomator-v18:2.1.1' 
} 

в главном build.gradle есть:

dependencies { 
    compile project(':library') 
} 

Но в тестах для основного проекта я получаю следующее сообщение об ошибке: error: package android.support.test.espresso does not exist по следующей строке

import android.support.test.espresso.UiController; 

Но эспрессо импортируется в проект библиотеки. Похоже, что проект библиотеки не компилируется как тест для Android.

Можно ли устранить эту проблему?

ответ

1

Вам следует попробовать создать отдельную библиотеку для общего тестового кода. В противном случае у вас будет тестовый код в app apk.

Создайте новую тестовую библиотеку (например, «тестовую библиотеку»), поместите в нее общий код. Затем создайте в каталоге «build.gradle» следующее.

dependencies { 
    compile project(':library') 
    androidTestCompile(':test-library') 
} 
+0

Ваше предложение выглядит очень хорошо. Но в моем случае 'test-library' также нуждается в библиотеке, потому что общий тестовый код зависит от этой библиотеки. Таким образом, в основной библиотеке проекта код включает в себя два раза, которые вызывают проблемы с папкой res. Знаете ли вы о возможном решении? –

 Смежные вопросы

  • Нет связанных вопросов^_^