Подтвердить что ты не робот

Получение простого теста Junit для компиляции с помощью Gradle на MacOSx

Я пытаюсь создать самый простой проект gradle (с тестами) для сборки. Посмотрите на все связанные вопросы и поисковые запросы Google, и я, кажется, пропустил что-то очень фундаментальное и, по-видимому, необычное.

Я создал один тестовый класс, а "gradle compileTestJava" не удалось скомпилировать файл, говорящий

пакет org.junit не существует

Он находит тест, знает его как тест, но не может найти свой собственный файл junit.jar.

build.gradle содержит

применить плагин: 'java'

и все. Голые кости! Я также попытался добавить

зависимости {

testCompile 'junit: junit: 4.10'

}

С этим я получаю "Не удалось разрешить все зависимости", из-за чего я думаю, что gradle потерял свои собственные файлы (?). Я вижу gradle установлен файл /Users/me/Documents/Projects/ gradle-1.3/lib/plugins/junit-4.10.jar.

Фактически, когда я запускаю "gradle зависимостей", я получаю

testCompile - Classpath for compiling the test sources.
No dependencies

Я не знаю, должно ли это включать встроенные зависимостей плагина или нет. Я предполагаю, что он должен перечислить junit.

Любые идеи?

Вот что я получаю:

:compileTestJava

/Users/me/Documents/Projects/experiment1/src/test/java/MyUnitTests.java:3: package org.junit does not exist
import org.junit.*;
       ^
/Users/me/Documents/Projects/experiment1/src/test/java/MyUnitTests.java:7: cannot find symbol
symbol  : class Test
location: class test.java.MyUnitTests
    @Test
     ^
/Users/me/Documents/Projects/experiment1/src/test/java/MyUnitTests.java:9: cannot find symbol
symbol  : variable Assert
location: class test.java.MyUnitTests
            Assert.assertEquals(2 + 2, 4);
            ^
3 errors
 FAILED

FAILURE: Build failed with an exception.
4b9b3361

Ответ 1

Вам нужно убедиться, что у вас созданы ваши репозитории, и вам нужно включить зависимость для junit. Это означает, что вам нужно что-то похожее на ваш build.gradle

repositories {
    mavenCentral()
}

apply plugin: 'java'

dependencies {
    testCompile 'junit:junit:4.10'
}

Ответ 2

В моем build.gradle у меня было это:

android {
sourceSets { main { java.srcDirs = ['src/main/java', 'src/test/java'] } }

А также

dependencies {
testCompile 'junit:junit:4.12'}

Проблема исчезла, когда я удалил следующее из файла build.gradle

'SRC/тест/Java

Ответ 3

Это руководство может помочь - http://www.slideshare.net/tobiaspreuss/how-to-setup-unit-testing-in-android-studio

Последний gradle тест должен находиться в директории androidTest

Также в вашем gradle.build:

dependencies {
     androidTestCompile 'junit:junit:4.+'
}

также добавьте те из defaultConfig

defaultConfig {

    testPackageName "test.java.foo"
    testInstrumentationRunner "android.test.InstrumentationTestRunner"

}

Ответ 4

Может также понадобиться mavenLocal() в вашем объявлении репозиториев

repositories {
  mavenLocal()
  mavenCentral()
}

Ответ 5

Просто добавьте

repositories {
    mavenCentral()
}

Это сработало для меня, если вы используете Android Studio для разработки Android