2012-07-17 2 views
13

테스트 스위트를 사용 중지하는 방법 (예 : FunSpec 클래스의 모든 테스트를 사용 중지 하시겠습니까?ScalaTest에서 테스트 스위트를 사용하지 않도록 설정하는 방법

유일한 해결책은 각 테스트 앞에 itignore으로 바꾸는 것이지만 수십 번의 테스트를 수행하는 것은 지루합니다.

+2

무슨 일이 있어도, [그것을 언급하지 않습니다)] (http://www.informit.com/articles/article.aspx?p=1334908) –

답변

21

1.8에서이 작업을 수행하는 쉬운 방법은 가짜 인수를 사용하는 생성자를 추가하는 것입니다. 그것은 대중이없는 경우 ScalaTest (그리고 SBT는) 클래스를 발견하지 않습니다, 인수 없음의 생성자 없습니다 : 2.0

class MySuite(ignore: String) extends FunSuite { 
    // ... 
} 

그냥 클래스에 @Ignore을 쓸 수 있습니다 :

@Ignore 
class MySuite extends FunSuite { 
    // ... 
} 
+0

이 시도하지만 결코 내가 사용에 영향이 없었다 scala 2.10.2, 제발 도와주세요. @BillVenners – user3995789

2

태그는 하나의 옵션이지만 각 태그에 따라 태그를 지정해야합니다. 그런 식으로 완전한 수트를 제외 할 수는 없습니다. 그러나 사용자 272735에서 언급했듯이 태깅 테스트는 한 번만 수행하면됩니다.

다른 옵션은 마스터 제품군을 정의하고 nestedSuites 목록을 실행하려는 스위트 (see the docs)로 제한하는 것입니다. 분명한 단점은 마스터 테스트 스위트를 유지해야한다는 것, 즉 새로 생성 된 테스트 스위트를 마스터 테스트 스위트에 추가해야한다는 것이다. 폴더를 다시보고, 발견 할 수있는 모든 테스트 슈트 목록을 작성하고, 블랙리스트에 넣은 테스트 슈트를 빼서이를 피할 수 있습니다. 또한 폴더를 반복 재생하면 이미 (외부 적으로) 주어진 조건과 일치하는 파일을 필터링 할 수 있습니다.

세 번째 옵션 - 해커 일지라도 - 블랙리스트에 포함하려는 스위트가 속한 패키지를 변경하는 것입니다. 그런 다음 테스트 러너를 사용하여 특정 패키지에 포함 된 슈트 만 실행할 수 있습니다. 자세한 내용은 "Specifying 'members-only' and 'wildcard' Suite paths" 문서 섹션을 참조하십시오.

5

@Ignore은 별개의 테스트와 전체 소송에 모두 사용할 수 있습니다.

관련 문제