如何在AndroidStudio 2.1.3中运行简单的junit测试
最近有一个短暂的时刻,Android Studio中的Build Variants视图包含一个“单元测试”选项,如果选中该选项,您只需选择测试类并点击“运行”,就可以轻松地在Android Studio中运行您的基本单元测试。然后我想,当Android Studio 2.0发布时,他们从构建变体菜单中删除了该选项。所有文档都说您应该能够右键单击测试类并说“RUN”,但每当我这样做时,都会提示我选择一个用于仪器测试的部署目标,而我对此不感兴趣。我是不是遗漏了什么?如何在AndroidStudio 2.1.3中运行基本单元测试 这是我当前build.gradle的摘录,其中包含我以前运行单元测试所需的代码:如何在AndroidStudio 2.1.3中运行简单的junit测试,android,unit-testing,Android,Unit Testing,最近有一个短暂的时刻,Android Studio中的Build Variants视图包含一个“单元测试”选项,如果选中该选项,您只需选择测试类并点击“运行”,就可以轻松地在Android Studio中运行您的基本单元测试。然后我想,当Android Studio 2.0发布时,他们从构建变体菜单中删除了该选项。所有文档都说您应该能够右键单击测试类并说“RUN”,但每当我这样做时,都会提示我选择一个用于仪器测试的部署目标,而我对此不感兴趣。我是不是遗漏了什么?如何在AndroidStudio
android {
compileSdkVersion project.COMPILE_SDK_VERSION.toInteger()
buildToolsVersion project.BUILD_TOOLS_VERSION
defaultConfig {
minSdkVersion project.SDK_MIN_VERSION_LIBRARY
targetSdkVersion project.COMPILE_SDK_VERSION.toInteger()
versionName project.VERSION_NAME
versionCode project.VERSION_CODE.toInteger()
}
lintOptions {
abortOnError false
}
buildTypes {
debug{
versionNameSuffix = "DEBUG"
}
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
sourceSets {
androidTest {
setRoot('src/test')
java.srcDir file('src/test/java')
resources.srcDir file('src/test/resources')
}
}
testOptions {
unitTests.returnDefaultValues = true
}
android.testOptions.unitTests.all {
// Configure includes / excludes
include '**/*Test.class'
exclude '**/espresso/**/*.class'
// Configure max heap size of the test JVM
maxHeapSize = '2048m'
// Configure the test JVM arguments - Does not apply to Java 8
jvmArgs '-XX:MaxPermSize=4096m', '-XX:-UseSplitVerifier'
// Specify max number of processes (default is 1)
maxParallelForks = 4
// Specify max number of test classes to execute in a test process
// before restarting the process (default is unlimited)
forkEvery = 250
// configure whether failing tests should fail the build
ignoreFailures false
// use afterTest to listen to the test execution results
afterTest { descriptor, result ->
println "Executing test for ${descriptor.parent}: ${descriptor.name} with result: ${result.resultType}"
}
}
}您已覆盖androidTest源集以在src/test/中查找。因此,Gradle认为您的测试/代码代表检测测试
我应该删除整个sourceset块吗
理想情况下,您遵循库存配置:androidTest/保留仪器测试,test/保留单元测试
如果你想要别的东西,没关系。但是,当您右键单击instrumentation测试类并选择Run时,它将运行instrumentation测试。因此,如果您希望androidTest/进行单元测试,而InstrumentationTest因为LongDirectoryNamesAreFun/进行插装测试,这很好,但您需要跟踪自己的位置
因此,您是放弃sourceSets闭包,还是更新它以反映您希望插装测试和单元测试的方向,取决于您。如何在Android Studio 2.1.3中运行基本单元测试?-您只需执行所述操作,右键单击类并选择“运行”,或者单击编辑器中类声明旁边的檐沟图标。但是,每当我这样做时,我都会被提示选择一个部署目标,该目标用于仪器测试,而我对此不感兴趣——您的单元测试是否在模块的测试/源集中?你在build.gradle中有没有做过一些处理源代码集的古怪事情?啊。。是的,我做到了!我有过去几年需要的代码。我用相关代码更新了我的问题。你看到问题了吗?当然。我删除了sourceSets闭包以配合标准配置,一切正常。非常感谢。