Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android Studio中的机器人分子和仪器测试_Java_Android_Robolectric - Fatal编程技术网

Java Android Studio中的机器人分子和仪器测试

Java Android Studio中的机器人分子和仪器测试,java,android,robolectric,Java,Android,Robolectric,我想创建机器人分子测试来补充我现有的仪器测试。我发现它声称支持一个单独的带有机器人分子测试的模块。但是,当我尝试使用此插件时,出现以下错误: 未找到类:“bbct.android.test.activity.test.FilterCardsTest” 这是我的build.gradle文件: apply plugin: 'android' android { compileSdkVersion 19 buildToolsVersion "19.1.0" defaultC

我想创建机器人分子测试来补充我现有的仪器测试。我发现它声称支持一个单独的带有机器人分子测试的模块。但是,当我尝试使用此插件时,出现以下错误:

未找到类:“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中启动测试时,不会编译测试类。第二个Android studio不知道在哪里搜索已编译的类

对于第一个问题,只需编译测试类。对于第二个问题,您可以修改测试模块iml文件,其中必须根据需要更改测试输出的路径

下面是一个完整的示例,它将自动进行iml修改。

这里详细介绍了如何强制AndroidStudio编译测试类

是的,当我尝试在Android Studio中运行Robolectric测试时,会出现异常。