2012-03-08 5 views
1

WPF 응용 프로그램과 GUI 단위 테스트 집합이 있습니다. 이 테스트는 응용 프로그램을로드 한 다음 마우스를 움직여 사물을 클릭합니다. 로그인 한 상태에서 실행하면 정상적으로 작동합니다.C# 연속 통합의 GUI 테스트

그러나 테스트가 연속 통합 서버에서 실행될 때 마우스는 항상 위치를 (0,0)으로보고합니다. 마우스로 이동 한 다음 위치를 확인하면 여전히 (0,0)입니다.

"서비스가 데스크톱과 상호 작용하도록 허용"을 선택하고 Environment.UserInteractive가 true 인 서비스가 실행되고 있습니다.

또한 로컬에서 테스트 실행을 시작한 다음 화면을 잠그면 마우스의 동작은 똑같습니다 (위치는 항상 0,0).

서비스로 실행 중일 때 어떻게 마우스를 사용할 수 있습니까?

+0

이러한 UI 테스트는 어떻게 작성 되었습니까? 코딩 된 UI? CI 서버에 무엇을 사용하고 있습니까? –

+0

UI 테스트는 앱을 시작한 다음 System.Windows.Forms.Cursor.Position과 user32.dll을 사용하여 마우스를 움직여 클릭합니다. CI는 Pulse를 사용하지만 명령 행에서 테스트를 시작합니다. –

+0

UI 테스트를 위해 코딩 된 UI와 같은 실제 UI 테스트 프레임 워크를 사용하십시오. 테스트가 통과했는지 또는 실패했는지 어떻게 확인할 수 있습니까? –

답변

1

article은 응용 프로그램이 예상하는 마우스 위치를 얻지 못하는 이유에 대해 설명합니다. 나는 당신이 비스타와 나중에 당신의 테스트를 실행하고 있다고 가정합니다.

여기 제가 생각하는 것입니다. 서비스는 비대화 형 세션 인 세션 0에서 실행됩니다. 따라서 마우스는 효과적으로 존재하지 않습니다.

바탕 화면을 잠그면 Windows는 WinLogon 데스크톱으로 전환하고 마우스를 훔칩니다. 귀하의 일반 데스크탑에서 실행중인 응용 프로그램은 마우스를 가지고 노는 일이 없습니다.