2010-12-27 2 views
1

CodeTree에서 프로젝트를 개발하고 SimpleTest에 단위 테스트 및 웹 테스트를 작성합니다. 테스트 결과가 결정적이지 않은 것으로 나타났습니다. 즉, 시간에 따라 다른 결과가 산출됩니다. 엄격하게 결정되어야하고 무작위 변수 등에 의존하지 않는 테스트 케이스를 의미합니다.SimpleTest WebTestCases는 결정적인 출력이 아닌 서로 영향을 미칩니다.

테스트가 서로 영향을주는 것처럼 보입니다. 모든 것이 잘되면, 나는 100 가지의 테스트를 통과 시켰다고 말하지만, 실패한 새로운 테스트 방법을 작성하면 몇 가지 다른 테스트도 실패합니다. 하지만 종종 실패한 테스트 케이스에서 문제를 바로 잡은 후 전체 테스트 스위트를 2-3 번 다시 실행 전체 스위트가 다시 패스를 제공합니다.

일반적으로 WebTestCases에서 발생합니다.

문제의 원인을 알고 있습니까?

나는 등을 공유하는 모든 클래스 변수를 수정하지 않는

나는 SimpleTest의 코드에서 눈 (자세한 이하, 신속 전체 흐름을 분석 크다)했습니다 그것은 브라우저의 인스턴스처럼 보인다 다른 테스트를 시작하기 전에 다시 만들어집니다.

가장 이상한 점은 다시 실행 한 후 일부 오류가 사라지고 마지막으로 모두가 사라진다는 점입니다. 이것에 관련된 캐싱이 있습니까?

SimpleTest에 대한 문서/블로그 항목/포럼 게시물이 웹에있는 API를 제외하고는별로 많지 않으므로 힌트에 감사드립니다. 그것은 수 있습니다

답변

0

: 나는 매우 철저한 조사를했고 SimpleTest 라이브러리에 버그가있는 것 같습니다,

허 (편집 별도의 포스트로 답을 이동).

연결을 여는 데 fsockopen을 사용한 다음 fwrite을 통해 요청을 보낸 다음 소켓에서 응답을 잘못 가져옵니다. 우리가 소켓에서 0 바이트를 읽었을 때 일어날 수있는 일이지만, 우리가 잘못 생각한 것처럼 서버가 사용 중이며 나중에 데이터를 전송할 수 있기 때문에 완료되지 않았습니다. 그렇게하면 전체 응답을 읽지 못하고 일부 응답 만 테스트하여 실패하게됩니다.

0

것들 :

  • 캐싱 - 캐싱하는 나쁜 결과 어딘가에 체인 ?
  • 오해 - 당신은 가 정확한 것을 테스트하고 있습니까?
  • 잘못된 데이터 - 당신이 데이터베이스의 상단, 데이터베이스의 데이터를 손상 실패, 에서이 작업을 테스트하는 경우 당신 언급과 같은 결과를 볼 수 있습니다.
+0

그 중 아무 것도 아니지만 제안 해 주셔서 감사합니다. 내가 찾은 내용으로 수정 사항을 게시했습니다. –

+0

알겠습니다 ... 이것은 테스트 스위트를 사용하지 않는 것을 선호하는 많은 이유 중 하나입니다. – DampeS8N