[英]Robolectric and Instrumentation tests in Android Studio
我想創建Robolectric測試以補充現有的儀器測試。 我發現了gradle插件 ,該插件聲稱支持Robolectric測試的單獨模塊。 但是,當我嘗試使用此插件時,出現以下錯誤:
找不到類別:“ bbct.android.test.activity.test.FilterCardsTest”
這是我的build.gradle文件:
apply plugin: 'android'
android {
compileSdkVersion 19
buildToolsVersion "19.1.0"
defaultConfig {
applicationId "bbct.android.common"
minSdkVersion 11
targetSdkVersion 19
versionCode 1
versionName "1.0"
}
signingConfigs {
release
}
buildTypes {
release {
signingConfig signingConfigs.release
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
productFlavors {
lite {
applicationId "bbct.android"
versionCode 15
versionName "0.6.2"
}
premium {
applicationId "bbct.android.premium"
versionCode 14
versionName "0.6.2"
}
}
def Properties props = new Properties()
def propFile = new File('signing.properties')
if (propFile.canRead()) {
props.load(new FileInputStream(propFile))
if (props!=null && props.containsKey('STORE_FILE') && props.containsKey('STORE_PASSWORD') &&
props.containsKey('KEY_ALIAS') && props.containsKey('KEY_PASSWORD')) {
android.signingConfigs.release.storeFile = file(props['STORE_FILE'])
android.signingConfigs.release.storePassword = props['STORE_PASSWORD']
android.signingConfigs.release.keyAlias = props['KEY_ALIAS']
android.signingConfigs.release.keyPassword = props['KEY_PASSWORD']
} else {
println 'signing.properties found but some entries are missing'
android.buildTypes.release.signingConfig = null
}
} else {
println 'signing.properties not found'
android.buildTypes.release.signingConfig = null
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:19.1.0'
compile 'com.android.support:support-v4:19.1.0'
compile 'com.google.android.gms:play-services:4.2.42'
liteCompile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile 'com.jayway.android.robotium:robotium-solo:5.1'
androidTestCompile ('com.squareup:fest-android:1.0.8') {
exclude group: 'com.android.support'
}
}
和FilterCardsTest
:
package bbct.android.test.activity.test;
import android.app.Activity;
import bbct.android.common.activity.FragmentTestActivity;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
import static org.junit.Assert.assertTrue;
@Config(manifest = "./src/main/AndroidManifest.xml")
@RunWith(RobolectricTestRunner.class)
public class FilterCardsTest {
@Test
public void testSomething() throws Exception {
Activity activity = Robolectric.buildActivity(FragmentTestActivity.class).create().get();
assertTrue(activity != null);
}
}
哪里找不到類異常? 我希望當您在Android Studio中進行自動測試時會出現這種情況。
可能有不同的原因。 首先,當您在android studio中開始測試時,不會編譯您的測試類。 Second Android Studio不知道在哪里搜索編譯的類。
對於第一個問題,只需編譯您的測試類。 對於第二個問題,您可以修改測試模塊iml文件,在該文件中您必須根據需要更改測試輸出的路徑。
這是一個完整的示例,它將自動進行iml修改。 https://github.com/nenick/android-gradle-template
這里詳細說明了如何強制android studio編譯測試類https://github.com/nenick/android-gradle-template/wiki/Tests-in-Android-Studio---IntellJ
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.