2013-03-14 4 views
5

테스트를 실행하지만 추가 설정이있는 sbt에서 사용자 정의 테스트 구성을 정의해야합니다. 나는이 일을하는 법을 알아 내려고 노력하고 있었지만, 제대로 할 수는 없었다.sbt에서 사용자 정의 테스트 구성 정의

내가 뭘하고 싶은지는 다음과 같습니다 : > test 정상적인 테스트 작업을 수행하고 > pipelinetest은 정확히 테스트와 동일하며, 주소는 (javaOptions += "-Dpipeline.run=run"입니다.

이 같은 테스트에 대한 javaOptions을 설정하는 방법을 알아 냈어요 : javaOptions in pipelinetest += "-Dpipeline.run=run"

가 어떻게이 목표를 달성하기 위해 pipelinetest을 정의하는 것입니다 : javaOptions in test += "-Dpipeline.run=run" 그래서 내가 무엇을 할 수 있도록하고 싶습니다이 무엇입니까? 이것이 새로운 과제가되어야합니까? 또는 이것이 test의 설정일까요? 나는 sbt에 대해 매우 익숙하며 지금 당장이 문제에 대해 혼란스러워하며 문서를 읽는 것이 도움이되지 않으므로 도움이 될 것입니다.

+2

http://www.scala-sbt.org/release/docs/Detailed-Topics/Testing.html, 특히 테스트 구성 및 공유 소스에 대한 섹션을 참조하십시오. –

답변

0

부분적인 대답 만 있지만 유용한 정보라고 생각했습니다. Spark에서 빌드 된 sbt와 비슷한 작업을하려고했는데 디버거를 사용하여 테스트를 실행하고 싶었습니다. Mark Harrah의 의견은 올바른 방향으로 나를 지적했습니다. change I made was :

lazy val TestDebug = config("testDebug") extend(Test) ... baseProject .configs(TestDebug) .settings(inConfig(TestDebug)(Defaults.testTasks): _*) .settings(Seq( javaOptions in TestDebug ++= "-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005" .split(" ").toSeq))

이 등 혼자 test, testOnly의 평소 호출을 왼쪽,하지만 지금은 위에서 정의 된 추가 옵션을 사용하는 testDebug:testOnly ...를 실행할 수 있습니다. (그것은 아마도 testDebug:test 등의 추가 옵션을 사용하여 유용하지 않지만 유용하지는 않습니다.)

나는 왜 이런 일을하는지 이해하지 못했지만, inConfig(TestDebug)(Defaults.testSettings) 대신 inConfig(TestDebug)(Defaults.testTasks)을 사용하십시오.

필자는 (a) 다중 프로젝트 빌드에서 작동하도록하는 방법과 (b) POM 파일을 기반으로 한 빌드가 더 이상한 b/c를 만드는 방법을 알아 내는데 어려움을 겪었습니다. 프로젝트 정의는 모든 예와 다릅니다.

평소와 마찬가지로 sbt에 관한 내 이슈는 관련있는 것처럼 보이는 정보를 찾는 것이지만 내 빌드에는 답을 완전히 쇄신 할 수없는 몇 가지 비정상적인 측면이 있습니다. 철저한 이해없이 사소한 수정이 필요해 보이지만 예제를 수정하기가 어렵습니다.

관련 문제