2015-04-24 3 views
1

ScalaTest люкс используетКак установить системное свойство для scalatest из командной строки SBT

System.getProperty("my.command-line.property") 

Что такое командная строка SBT для достижения этой настройки?

Я попытался

SBT_OPTS="-Dmy.command-line.property=foo" sbt "test-only <path to test suite" 

также:

JAVA_OPTS="-J-Dmy.command-line.property=foo" sbt "test-only <path to test suite" 

Наконец:

sbt/sbt '; set javaOptions in Test +="-Dtest.num.points=500000"; \ 
project mllib; test-only org.apache.spark.mllib.optimization.LBFGSSuite' 

При использовании любого из этих попыток System.getProperty приходит пустым.

Подход, который делает работа выполняется в ScalaTest изнутри Intellij и настройка параметров виртуальной машины Java, чтобы -Dmy.command-line.property = Foo в конфигурации Run.

+1

Вы развеваете свои тесты? (у вас есть эта строка: 'fork in Test: = true' в ваших файлах сборки?) –

ответ

0

Ваш третий путь почти работы (если fork in Test := true установлен). Но сначала вы должны перейти в проект:

sbt/sbt '; project mllib; set javaOptions in Test +="-Dtest.num.points=500000"; \ 
test-only org.apache.spark.mllib.optimization.LBFGSSuite' 
-2

Добавить это в настройках проекта:

javaOptions in Test += "-Dmy.command-line.property=foo" 

Если у вас есть много настроек, вы можете поместить их в конфигурационный файл и передать его следующим образом:

javaOptions in Test += "-Dconfig.file=conf/test.conf" 

EDIT: Чтобы передать это из командной строки: Я думаю, что вы после этого ответа: How to set system properties for runMain on command line?

EDIT 2: Вы попробовали это? sbt '; set javaOptions + = "-Dconfig.resource = ../application.conf"; тест»

+1

Из названия этого сообщения: ** из командной строки ** – javadba

+1

В ваших ответах не рассматриваются данные по этому вопросу: runMain is не относится к scalatest – javadba

+0

@javadba Я не дал вам прямого ответа. Вы могли бы догадаться об ответе: :) Если я не вижу своего «EDIT 2» –

0

Это работает для меня:

val myFoo = sys.props("foo.property") 

и:

SBT_OPTS="-Dfoo.property=foo" sbt "testOnly *your_test_package*" 
+0

Внутри скальтирующего набора? – javadba

+0

Первая строка внутри вашего тестового кода, вторая строка командной строки (как установить свое свойство и ограничить выполнение теста только вашим желаемым пакетом) – user1859675

Смежные вопросы