2016-09-21 3 views
6

sbt에서 내 테스트를 모두 실행하려고하면 좌절감이 많습니다. 특정 태그는 제외하지만. 여기에 실행하려고 무엇 :ScalaTest를 사용할 때 특별히 SBT에서 태그 테스트를 제외합니다.

testOnly "com.my.project.path.somePackage" -- -l "com.my.project.path.tags.ValidationTest" 
:

testOnly * -- -l "com.my.project.path.tags.ValidationTest" 

내가 너무 같은 패키지에 클래스 또는 경로에 경로로 * 교체를 포함하여이 명령의 많은 변화를 시도했다

그리고 패키지 주위에 따옴표없이 시도했습니다.

그냥 testOnlysbt의 새 버전에서 사용되고 test-only이 아니라고 읽었습니다. 이 구문 (및 많은 변형)을 시도했지만 아무 것도 작동하지 않는 것 같습니다. 이 같은 설정 내 검사를 :

"some method" should "fail when doing something" taggedAs ValidationTest in { ... } 

내가 object ValidationTest extends Tag("com.my.project.path.tags.ValidationTest")TestTag.scala에 정의되어 있습니다.

나는 또한

> test-only org.acme.* -- -n CheckinTests 
> test-only org.acme.* -- -n FunctionalTests -l org.scalatest.tags.Slow 
> test-only org.acme.* -- -n "CheckinTests FunctionalTests" -l "org.scalatest.tags.Slow org.scalatest.tags.Network" 
+0

분명히하려면 태그를 실행 하시겠습니까? 그 태그가 달린 것들을 원하지 않는 것처럼 들리지만, ScalaTest가 지원하지 않는다고 생각합니다. – wheaties

+0

ScalaTest 절대적으로 ** ** 이러한 태그를 건너 뛰거나'-n' 또는'-l' 플래그를 사용하여 지원합니다. 여기 [ScalaTest with Sbt] (http://www.scalatest.org/user_guide/using_scalatest_with_sbt)를 참조하십시오. 페이지의 3/4 아래를보십시오. – DanGordon

답변

0

그냥 "이 태그와 테스트를 포함 및 제외"에서 다음과 같은 방법 대신 "some method" should "fail..."

Sbt with ScalaTest의, it 키워드로 정의 될 때이 시도 보여주고있다 몇 가지 추측 :

  • 이 구문은 모두 sbt 콘솔에서만 작동하며 명령 행에서 작동하지 않습니다. 당신은 통합 테스트를 갖게 할 필요가있는 경우는
  • 패키지 이름은 따옴표없이해야하며, 별표로 끝나야, 태그 (예를 들어 testOnly com.my.project.* -- -l "com.my.project.path.tags.ValidationTest") 따옴표
  • testOnly 문제 만 단위 테스트, 함께해야합니다, 당신은 사용해야합니다 예를 들어, it:testOnly * -- -l "path.to.Tag".
+0

필자는 이것을 테스트하지 않았지만 - 그렇습니다. sbt 콘솔을 사용하지 않고 저와 관련이 있다고 생각합니다. 또한 따옴표를 사용하지 마십시오. – DanGordon

+1

그래서 명령 행에서 같은 것을 할 수 있습니까? – DanGordon

+0

한 가지 방법은 매개 변수로 명령을 sbt 콘솔에 전달하는 것입니다. 배치 파일/셸 스크립트에서. 나는 아직 그것을 시도하지 않았고 가능한지 전혀 모릅니다. – Reinis