web-dev-qa-db-fra.com

Obtenir un simple test Junit à compiler avec Gradle sur MacOSx

J'essaie de faire en sorte que le projet de diplôme le plus simple (avec des tests) soit élaboré. J'ai examiné toutes les questions connexes et les recherches sur Google, et il me semble manquer quelque chose de très fondamental et apparemment peu commun.

J'ai créé une classe de test et "gradle compileTestJava" ne parvient pas à compiler le fichier en disant

le paquet org.junit n'existe pas

Il trouve le test, sait que c'est un test, mais n'arrive pas à trouver son propre fichier junit.jar.

build.gradle contient

appliquer le plugin: 'Java'

et c'est tout. Os nus! J'ai aussi essayé d'ajouter

dépendances {

testCompile 'junit: junit: 4.10'

}

Avec cela, je reçois le message "Impossible de résoudre toutes les dépendances", ce qui me fait penser que gradle s'est égaré dans ses propres fichiers (?). Je vois le fichier /Users/me/Documents/Projects/gradle-1.3/lib/plugins/junit-4.10.jar installé de Gradle.

En fait, quand je lance des "dépendances de gradle", je reçois

testCompile - Classpath for compiling the test sources.
No dependencies

Je ne sais pas si cela est supposé inclure des dépendances de plug-in intégrées ou non. Mon hypothèse est qu'il devrait énumérer Junit.

Des idées?

Voici ce que je reçois:

: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.
28
Rob Myers

Vous devez vous assurer que votre référentiel est configuré et que vous devez inclure la dépendance pour Junit. Cela signifie que vous avez besoin de quelque chose qui ressemble à ceci pour votre build.gradle

repositories {
    mavenCentral()
}

apply plugin: 'Java'

dependencies {
    testCompile 'junit:junit:4.10'
}
16
Alpine

Dans mon build.gradle j'avais ceci:

Android {
sourceSets { main { Java.srcDirs = ['src/main/Java', 'src/test/Java'] } }

Et aussi 

dependencies {
testCompile 'junit:junit:4.12'}

Le problème a disparu lorsque j'ai supprimé les éléments suivants du build.gradle

'src/test/Java'

6
ericharlow

Il peut également avoir besoin de mavenLocal () dans votre déclaration de référentiel

repositories {
  mavenLocal()
  mavenCentral()
}
2
Faktor 10

J'ai eu un problème similaire sur mes tests et j'ai eu le même type d'erreur. Je suis en mesure de résoudre ce problème en ajoutant les jeux de sources dans mon fichier build.gradle.

Par exemple:

sourceSets {
src {
   test{
      Java{
    srcDirs =["com/testfile/appservice/test/endpoint"]
    }
      }
}

}

src/test/Java est le nom du répertoire situé juste au-dessus du package de test et com.testfile.appservice.test.endpoint est le nom du package où est écrit mon test Junit.

0
Kabiraj Kharel

Il suffit d'ajouter

repositories {
    mavenCentral()
}

Cela a fonctionné pour moi, si vous utilisez Android Studio pour le développement Android

0
Sandeep Tengale