문제

쿠키 값이 올바르게 저장되어 있는지 확인하기 위해 오늘 우리 앱에 간단한 Watin 테스트를 추가했습니다.

테스트는 팀의 모든 기계에서 로컬로 통과합니다. 그러나 CruiseControl이 빌드 서버에서 테스트를 실행하면이 새로운 테스트는 포함 된 라인에서 실패합니다.

browser.GetCookie(url, cookieName)

cruisecontrol 로그에 제공된 오류는 이전 밤입니다.

Object reference not set to an instance of an object.

CruiseControl이 실행하는 것과 동일한 사용자 계정을 사용하여 MBUNIT를 수동으로 실행하고 테스트가 통과하여 원격 데스크탑을 사용하여 빌드 서버에 로그온했습니다. 따라서 쿠키에 액세스하기 위해 빌드 서버의 권한에 문제가되지 않습니다.

나는 도움을 위해 모든 Watin 문서를 살펴 보았지만 비워집니다. Cruisecontrol 서비스를 다시 시작했습니다. 나는 내가 생각할 수있는 모든 것을 시도했으며 이제 크루즈 컨트롤이 이러한 테스트를 실행하는 방식에서 무엇이 다른지에 대해 완전히 손실을 입었습니다.

이 원인이 무엇인지,/또는 어떻게 해결 해야하는지 아는 사람이 있습니까?

도움이 되었습니까?

해결책

서비스 대신 응용 프로그램으로 cruisecontrol을 실행해보십시오. 서비스에서 실행될 때 Watin은 매달려있는 경향이 있습니다 (Windows 서비스는 UI 세션에 첨부되지 않으므로 Watin은 IE의 대화 상자를 처리하기 위해 하나가 필요합니다).

그러나 그 외에 ... IE 쿠키가 사용자 프로필에 저장되어 있음을 기억하십시오. 서비스가 실행될 때 프로파일이로드되지 않습니다. 백그라운드에서 조용히 실행되며 실제로 로그온 세션의 맥락에서 실행되지 않는 데몬 프로세스입니다. 나는 그것이 당신의 예외의 원인이라고 생각합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top