나는 BeforeAndAfter
을 구현하는 테스트 스위트를 가지고 있으며, 테스트가 실패한 경우 내 after()
메소드를 체크인 할 수 있고, 일부 값을 계산하여 출력하는 것이 이상적입니다. 이 일을하는 내장 된 방법이 있습니까?스칼라 after() 메서드에서 테스트가 실패했는지 여부를 확인하는 방법이 있습니까?
ps. 나는 내가 할 수있는 시험/캐치 전체 테스트를 할 수 있지만 오히려 그렇게 할 줄 알았어.
나는 BeforeAndAfter
을 구현하는 테스트 스위트를 가지고 있으며, 테스트가 실패한 경우 내 after()
메소드를 체크인 할 수 있고, 일부 값을 계산하여 출력하는 것이 이상적입니다. 이 일을하는 내장 된 방법이 있습니까?스칼라 after() 메서드에서 테스트가 실패했는지 여부를 확인하는 방법이 있습니까?
ps. 나는 내가 할 수있는 시험/캐치 전체 테스트를 할 수 있지만 오히려 그렇게 할 줄 알았어.
after()
에서 할 수 있다고 생각하지 않지만 withFixture()
을 무시하면됩니다. 필요에 따라
class ExampleSpec extends WordSpec with MustMatchers {
"Example" must {
"work correctly" in {
3 must be(3)
}
"not fail" in {
true must be(false)
}
}
override def withFixture(test: NoArgTest) = super.withFixture(test) match {
case failed: Failed =>
val nameLen = test.name.length
info(s"The test '${test.name}' failed")
info(s"The test name is $nameLen characters long")
failed
case other => other
}
}
이 Sharing Fixtures을 참조, 특히 절 "재정 withFixture (NoArgTest)"
:이 방법을 사용하면 실패의 경우에 결과 및 인쇄 뭔가를 일치시킬 수 있습니다 그 후 실제 테스트를 실행 당신이 할 경우)
test("mytest") {
around {
}
}
it should "blabla" in around {
...
}
2 : 당신은 할 수 있습니다
는1) 좋아 def around[T](code: => T) = try {code} ...
같은 것을 작성하고 사용
def mytest[T](name: String)(code: =>T) = test(name){
try {
code
} ...
}
을하거나 test
를 오버라이드 (override) : 모두 BTW, 별도의 특성으로 수행 할 수 있습니다
override def test[T](name: String)(code: =>T) = super.test(name){
try {
code
} ...
}
다음 그냥 자신의 쓰기 사양을 사용할 수 없습니다. 이 alextsc의 대답
4) 빌드
P.S.에서 모든 테스트를 차단하려면 자신의 reporter 쓰기 @ 설명
3) withFixture
를 오버라이드 (override) BeforeAndAfter/withFixture는 자원을 정리하기위한 것이므로 예외에 대한 액세스 권한을 제공하지 않습니다. 오류를 분석하고 다시 표시해야하는 경우 논리적으로 기자 솔루션이 더 적합 할 수 있지만 그리 편리하지는 않습니다.
고마워, 그게 내가 바라던 종류 야. – annedroiid