2014-06-06 16 views
6

Giriş argümanını alan, testOnly görevine geçiren ve yürüten görevi yazmaya çalışıyorum. Mükemmel çalışır, ancak sistem görevini bu görevde ayarlayamıyorum, ki bu testte görünür olacak. Bu özellikler diğer görevleri etkilememeli ve yalnızca bu özel görevde görünmelidir. Ben sbt konsolunda çalıştırdığınızda İşte sbt Dinamik Görev'de java seçeneklerini ayarlayın

benim kod örneği

lazy val myTestOnly = InputKey[Unit]("myTestOnly", "test only with special sys prop") 

val myTestOnlyTask = myTestOnly := { 
    Def.inputTaskDyn { 
    val args: Seq[String] = spaceDelimited("").parsed 

    javaOptions in Test ++= Seq("-Dfoo=bar") // does not work 
    testOptions += Tests.Setup(() => System.setProperty("foo", "bar")) //does not work 
    System.setProperty("foo", "bar") // does not work 

    (testOnly in Test).toTask(" " + args.head) 
    }.evaluated 
} 

olduğunu

myTestOnly com.sampleTest 

testOnly yürütür ama "foo" özelliği görülmez

Yani qustion nasıl ayarlanacağını olduğunu Sadece geçerli görev için test çalışma zamanında görülebilecek görev tanımındaki özellik? build.sbt içinde

cevap

0

:

val currentTimestamp: String = 
    new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date()) 
val targetDir 
    : String = baseDirectory + "/project/target/mtd/" + currentTimestamp 

javaOptions in Test ++= Seq("-Ddynamic_dir_to_set=" + targetDir) 

ve sbt test dynamic_dir_to_set env var garantili değere sahip olacaktır.

http://www.scala-sbt.org/0.13.2/docs/Detailed-Topics/Forking.html#change-working-directory http://www.scala-sbt.org/0.13/docs/Plugins-and-Best-Practices.html

: teori bağlantıların

Çift yalak gitmek