2013-02-21 5 views
1

나는 테스트 오염을 받고 있습니다. 개별적으로 실패한 테스트를 실행하면 통과합니다. 모두 함께 실행하면 오류가 발생합니다. 오류는 데이터베이스와 관련이 없습니다. 오류를 이해할 수 없습니다. 페이지 :Spock/Geb 테스트 오염

errorModule (wait: true) { module ErrorModule } 

errorModule : 예를 들어 정적 콘텐츠 = { 오류 (필수 : 거짓) {$ ("h3.error")} }

사양 :

assert page.errorModule 

예외 : org.openqa.selenium.NoSuchElementException : 요소를 찾을 수 없습니다. { "method": "태그 이름", "selector": "html"}

모듈의 내용이 필요 없기 때문에 이해할 수 없습니다. 또한, 다른 테스트의 오염으로 인해이 문제가 발생할 수 있습니까? 내 테스트는 너무 많아 목록에 올 수 없습니다.

유일한 아이디어는 내 프로그램이 아닌 쿠키를 설정하는 것입니다. "1361461306476"및 "1.1361461306.1.1.utmcsr = (직접) | utmccn = (직접) |"와 같은 비밀 값이있는 "ba743b", "kvcd", "kn_ai"등과 같은 이상한 이름의 쿠키가 있습니다. utmcmd = (없음) ". 누구든지 이러한 쿠키의 출처와 테스트가 끝날 때 쿠키를 삭제하는 방법을 알고 있습니까? 그것은 심지어 중요합니까? 쿠키는 세션 쿠키가 아니며 만료 날짜가 있습니다. 내 코드가 생성한다고 생각하지 않는 쿠키를 삭제하는 방법을 모르겠습니다. 그러나 이것은이 일과 관련이 없습니다.

+0

'page.errorModule'은 필수입니다. 여러분은'errorModule.error'를 필수적이지 않도록 설정했습니다. OTOH 당신이 이름 엔지니어를 가지고 있으면 좋을 것입니다. –

+0

하지만 콘텐츠가 필요하지 않아서 중요하지 않을 수도 있다고 생각했습니다. 저를 혼란스럽게하는 것은 이것이 푸른 달에 한 번만 발생하는 것이지 모든 페이지 호출을 위해서가 아니라는 것입니다. errorModule의 내용은 거의 존재하지 않습니다. 귀하의 의견에 감사드립니다. errorModule (wait : true, required : false)을 시도하고 page.errorModule을 선언하겠습니까? –

답변

0

테스트를 실행하기 위해 Firefox를 사용합니까? 페이지를 전환 한 직후 오류가 발생합니까?

그렇다면 여전히 페이지를로드하는 동안 테스트 코드로 컨트롤을 반환 할 때 Firefox 드라이버에서 버그가 발생하는 것입니다. at()에서 제목이 빈 문자열 일 때 오류가 표시되는 경우가 있습니다. 내가하는 일은 예외가 던져지고있는 줄 바로 앞에 at()/verifyAt()에 대한 호출을 추가하는 것입니다. 그것은 더러운 해킹이지만 나는 더 나은 것에 대해 생각할 수 없으며 항상 효과가있는 것처럼 보입니다.

관련 문제