2016-12-02 6 views
0

작업을 중지하고 내 코드는코딩 된 UI 테스트 Mouse.StartDragging은 ... 한 번 작동하고 나는 (내가 코드를 편집 할 수 있도록) 내가 UIMap.cs로 이동하도록 코딩 된 UI 테스트를

public void Drag_Item(Point from, Point to) 
    { 
     #region Variable Declarations 
     WpfPane uIItemPane = this.UIOMyWindow.UIDesignSurfaceCustom.UIItemTabList.UIControlTabPage.UIControlText.UIItemPane; 
     #endregion 

     Mouse.StartDragging(uIItemPane, from); 
     Mouse.StopDragging(uIItemPane, to); 
    } 
내 시험에서이 메소드를 호출

...

[TestMethod()] 
    public void Drag_3_Items() 
    { 
     Positions positions = new Positions(); 
     Point start = positions.adaptorsAlert; 
     this.UIMap.Drag_Item(start, positions.pos1); 
     this.UIMap.Drag_Item(start, positions.pos2); 
     this.UIMap.Drag_Item(start, positions.pos3); 
     this.UIMap.Close_AdaptorsWindowOnDesignGrid(); 
    } 

내 문제는 첫 번째 호출이 작품을 Drag_Item 할 수 있지만, 두 번째 통화와 세 번째 호출이 없다는 것입니다. 첫 번째 드래그가 작동 한 후 커서는 올바른 내 창 아이콘으로 돌아가고 무한정 기다립니다. 마우스를 흔들면 갑자기 작동합니다. 내 테스트가 스스로 실행될 때 나는 분명히 마우스를 움직일 수 없을 것입니다. 어떻게 해결할 수 있습니까? 나는 다양한 Thread.Sleep 라인 인 Mouse.Hover와 Mouse.Move를 추가하는 것을 포함하여 많은 것을 시도했다. 내 손으로 물리적으로 움직이는 마우스를 제외하고는 아무 것도 작동하지 않습니다. 다른 사람들은 좋은 질문없이 여러 포럼에 동일한 질문을 게시했습니다. 내가 생각할 수있는

내 포지션 클래스는 정보에 대한

...

using System; 
using System.Collections.Generic; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 

namespace MyCodedUITesting 
{ 
//[Serializable] 
public class Positions 
{ 
    public Point pos1 = new Point(40, -500); 
    public Point Pos1 
    { 
     get { return pos1 ; } 
     set { this.pos1 = value; } 
    } 

    public Point pos2 = new Point(440, -500); 
    public Point Pos2 
    { 
     get { return pos2 ; } 
     set { this.pos2 = value; } 
    } 

    public Point pos3 = new Point(840, -500); 
    public Point Pos3 
    { 
     get { return pos3 ; } 
     set { this.pos3 = value; } 
    } 
} 
} 

답변

0

만 것은 당신이 uIItemPane 당신이 메소드를 호출 할 때마다 인스턴스 재 걸입니다. 테스트 메소드 내에서 인스턴스화 한 다음 Drag_Item에 전달할 수 있습니다.

+0

죄송합니다. Ryanman, 별다른 차이는 없습니다. 첫 번째 시도에서는 여전히 작동하지만 이후 드래그 앤 드롭 시도에서는 실패합니다. – Ewan

+0

두 가지 제안 - Mouse.Move (uIItemPane, from)를 호출 해보십시오. 드래그 시작하기 전에. 두 번째 제안은 의존하고있는 항목 창이 잘못되었을 수 있다는 것입니다. 컨트롤 계층 구조를 살펴보면 텍스트 상자 안에있는 창 내부를 보는 것처럼 보입니다. 나는 물론 당신의 시나리오를 모르지만 내 직감은 부모의 통제가 다른 무엇인가라고 말합니다. – Ryanman

+0

감사합니다. Ryanman, Mouse.Move를 시도했지만 두렵습니다. 나는 Mouse.Hover도 시도했다. 두 번째 제안에, 그렇습니다 그것은 텍스트 상자 안의 창이지만 dev 팀이 만들었 기 때문에 변경할 수는 없습니다. 그것은 처음부터 작동하기 때문에 어느 시점에서 정확해야합니다. 흥미롭게도 처음에는 작동을 멈추고 나중에 다시 시도하기 시작했습니다. 그것은 마치 마우스 상태에 생기는 물고기 같은 것입니다. – Ewan