尝试在IntelliJ Idea中运行一些Android JUnit测试时遇到问题。
我的项目是使用Gradle的Android库项目。当我运行我的测试时,IntelliJ会抱怨以下错误:
Class not found: "com.domain.app.ClassTest"
但ClassTest
存在于测试包中。
这是我的build.gradle:
apply plugin: 'android-library'
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.10.+'
}
}
dependencies {
repositories {
mavenCentral()
maven {
url 'https://oss.sonatype.org/content/repositories/snapshots/'
}
}
compile 'com.android.support:support-v4:19.1.+'
compile('junit:junit:4.11') {
exclude module: 'hamcrest-core'
}
}
android {
compileSdkVersion 18
buildToolsVersion "19.0.3"
defaultConfig {
versionName "1.0"
versionCode 1
targetSdkVersion 18
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src/main/java']
res.srcDirs = ['res']
}
androidTest {
java.srcDirs = ['src/test/java']
}
}
lintOptions {
abortOnError false
}
}
我的项目结构:
src
|_ main
|_ java
|_ com.domain.app
|_ test
|_ java
|_ com.domain.app
我正在使用IntelliJ IDEA 13.1.1。
谢谢。
去Project Structure -> Modules -> your_module -> Paths
。
应该填写'Output path
'的值,但'Test output path
'不会。复制'Output path
'中的文本,粘贴到'测试输出路径',但将最终的'build/intermediates/classes/debug
'更改为'build/test-classes
'。这是因为gradle android测试插件当前将所有已编译的测试输出(对于所有变体)转储到同一目录中。这意味着目前尚未完全支持变体。
老问题,但刚遇到这个问题,发现答案是将JUnit测试文件存储在以下路径中
模块名/ SRC /测试/ JAVA /
如果该目录尚不存在,请创建它并将测试文件放在那里。
资料来源:https://developer.android.com/training/testing/unit-testing/local-unit-tests
尝试将“test”重命名为“androidTest”
src
|_ main
|_ java
|_ com.domain.app
|_ **androidTest**
|_ java
|_ com.domain.app
http://tools.android.com/tech-docs/new-build-system/migrating_to_09