"Класс не найден" при запуске тестов JUnit от IntelliJ IDEA (Android)
У меня возникла проблема при попытке запуска некоторых тестов JUnit на Android в IntelliJ Idea.
Мой проект - проект библиотеки Android с использованием Gradle. Когда я запускаю свои тесты, 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.
Спасибо.
Ответы
Ответ 1
Перейдите к Project Structure -> Modules -> your_module -> Paths
.
Значение "Output path
" должно быть заполнено, но "Test output path
" не будет. Скопируйте текст в 'Output path
', вставьте в 'Test output path', но измените окончательный 'build/intermediates/classes/debug
' на 'build/test-classes
'. Это связано с тем, что тестовый плагин gradle android test в настоящее время сбрасывает все скомпилированные тестовые выходные данные (для всех вариантов) в один и тот же каталог. Это означает, что в настоящее время варианты не поддерживаются полностью.
Источник.
Ответ 2
Попробуйте переименовать "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