Ich habe ein gemischtes Java/Scala Projekt mit JUnit und ScalaTest Tests. Mit der scalatest plugin führt Gradle die ScalaTest-Tests in src/test/scala
aus, ignoriert jedoch die JUnit-Tests in src/test/java
. Ohne das Plugin führt Gradle die JUnit-Tests aus, ignoriert aber die Scala. Welchen Trick vermisse ich?Wie leite ich ScalaTest und JUnit Tests mit Gradle?
Mein build.gradle
:
plugins {
id 'java'
id 'maven'
id 'scala'
id "com.github.maiflai.scalatest" version "0.6-5-g9065d91"
}
sourceCompatibility = 1.8
group = 'org.chrononaut'
version = '1.0-SNAPSHOT'
task wrapper(type: Wrapper) {
gradleVersion = '2.3'
}
ext {
scalaMajorVersion = '2.11'
scalaVersion = "${scalaMajorVersion}.5"
}
repositories {
mavenCentral()
mavenLocal()
}
dependencies {
compile "org.scala-lang:scala-library:${scalaVersion}"
compile "org.scala-lang.modules:scala-xml_${scalaMajorVersion}:1.0.3"
compile 'com.google.guava:guava:18.0'
compile 'javax.xml.bind:jaxb-api:2.2.12'
compile 'jaxen:jaxen:1.1.6'
compile 'joda-time:joda-time:2.7'
compile 'org.joda:joda-convert:1.7'
compile 'org.apache.commons:commons-lang3:3.3.2'
compile 'org.jdom:jdom2:2.0.5'
testCompile 'junit:junit:4.12'
testCompile 'org.easytesting:fest-assert:1.4'
testCompile 'org.mockito:mockito-core:1.10.19'
testCompile "org.scalatest:scalatest_${scalaMajorVersion}:2.2.4"
testRuntime 'org.pegdown:pegdown:1.1.0' // required by scalatest plugin
}
compileScala {
scalaCompileOptions.additionalParameters = [
"-feature",
"-language:reflectiveCalls", // used for config structural typing
"-language:postfixOps"
]
}
ETA: Ich weiß, es ist möglich, Scala zu annotieren testet sie zu zwingen, mit dem JUnit-Testläufer zu laufen. Ich suche nach einer Lösung build.gradle
aus einer Hand, die nicht erfordert, jede Testdatei zu bearbeiten (oder mit den Tests zu verwirren, um Einschränkungen im Build-System im Allgemeinen zu umgehen).
Was ist, wenn Sie com.github entfernen passiert. maiflai.scalatest und was repariert es? – judoole
Wenn ich com.github.maiflai.scalatest entferne, dann werden die Scala-Tests nicht ausgeführt, sondern nur die JUnit-Tests (siehe Originalbeitrag). –
Vielleicht, wenn Sie darauf schlagen, um ScalaTests mit Gradle laufen zu lassen: @RunWith (classOf [org.scalatest.junit.JUnitRunner]) – judoole