vivo toyota programas medicina korea japan español brasil sbt

toyota - sbt medicina



¿Cómo hacer que las clases de "prueba" estén disponibles en la configuración "it"(prueba de integración)? (2)

Puede redefinir la configuración de prueba de integración en su proyecto para extender la configuración de prueba en lugar de la configuración de tiempo de ejecución (la predeterminada). Esto hará que todo en su configuración de prueba esté disponible para su configuración de IntegrationTest.

import sbt._ import Keys._ object MyBuild extends Build { val scalaTest = "org.scalatest" %% "scalatest" % "2.0" % "test,it" lazy val IntegrationTest = config("it") extend(Test) lazy val myProject = Project(id = "my-project", base = file(".")) .configs(IntegrationTest) .settings(Defaults.itSettings: _*) .settings( scalaVersion := "2.10.3", libraryDependencies ++= Seq( scalaTest ) ) }

Me gustaría compartir un rasgo de ayuda entre las configuraciones de "prueba" y "ello" en SBT, pero no he descubierto cómo.

Aquí hay un ejemplo mínimo:

proyecto / Build.scala

import sbt._ import Keys._ object MyBuild extends Build { val scalaTest = "org.scalatest" %% "scalatest" % "2.0" % "test,it" lazy val myProject = Project(id = "my-project", base = file(".")) .configs(IntegrationTest) .settings(Defaults.itSettings: _*) .settings( scalaVersion := "2.10.3", libraryDependencies ++= Seq( scalaTest ) ) }

src / test / scala / Helpers.scala

trait Helper { def help() { println("helping.") } }

src / test / scala / TestSuite.scala

import org.scalatest._ class TestSuite extends FlatSpec with Matchers with Helper { "My code" should "work" in { help() true should be(true) } }

src / it / scala / ItSuite.scala

import org.scalatest._ class ItSuite extends FlatSpec with Matchers with Helper { "My code" should "work" in { help() true should be(true) } }

entonces, en sbt, "prueba" funciona:

sbt> test helping. [info] TestSuite: [info] My code [info] - should work [info] Run completed in 223 milliseconds. [info] Total number of tests run: 1 [info] Suites: completed 1, aborted 0 [info] Tests: succeeded 1, failed 0, canceled 0, ignored 0, pending 0 [info] All tests passed. [success] Total time: 0 s, completed Dec 17, 2013 1:54:56 AM

pero "it: test" no compila:

sbt> it:test [info] Compiling 1 Scala source to ./target/scala-2.10/it-classes... [error] ./src/it/scala/ItSuite.scala:3: not found: type Helper [error] class ItSuite extends FlatSpec with Matchers with Helper { [error] ^ [error] ./src/it/scala/ItSuite.scala:5: not found: value help [error] help() [error] ^ [error] two errors found [error] (it:compile) Compilation failed [error] Total time: 1 s, completed Dec 17, 2013 1:55:00 AM


Si desea compartir el código de la configuración de Test , probablemente es mejor crear una configuración de prueba personalizada desde la Test . Ver configuración de prueba personalizada .

Su project/Build.scala convierte en:

import sbt._ import Keys._ object MyBuild extends Build { lazy val FunTest = config("fun") extend(Test) val scalaTest = "org.scalatest" %% "scalatest" % "2.0" % "test" lazy val myProject = Project(id = "my-project", base = file(".")) .configs(FunTest) .settings(inConfig(FunTest)(Defaults.testSettings) : _*) .settings( scalaVersion := "2.10.3", libraryDependencies ++= Seq( scalaTest ) ) }

También cambie el nombre de src/it/ a src/fun/ . Ahora fun:test funciona:

> fun:test helping. [info] ItSuite: [info] My code [info] - should work [info] Run completed in 245 milliseconds. [info] Total number of tests run: 1 [info] Suites: completed 1, aborted 0 [info] Tests: succeeded 1, failed 0, canceled 0, ignored 0, pending 0 [info] All tests passed. [success] Total time: 1 s, completed Dec 17, 2013 8:43:17 AM