2017-04-25 1 views
2

로컬로 (내 PC에서) 완벽하게 작동하며 TC에서 완벽하게 작동하는 테스트 (파일 업로드)가 있습니다. 하지만! MSTSC (내 서버 - Windows 서버 2012의 원격 데스크톱)를 실행하고 실제로 테스트 실행을 보았을 때 TC에서만 잘 작동합니다.Teamcity에서만 테스트가 실패합니다

TeamCity 빌드 에이전트의 일부로 트리거가 실행 중이고 원격 데스크톱에 있지 않을 때 테스트를 실행하면 실패합니다. 그건 그렇고, 백그라운드에서 TeamCity 빌드 에이전트에 대한 테스트를 실행하려고 시도했지만 그 방법도 실패합니다. 나는 팝업 창을 열기 대화 상자를 실행하기 위해 요소를 클릭하고있어 다음 사용 :

public static void OpenFileNew(string FileNameToAttach) 
    { 
     Process pp = Process.GetCurrentProcess(); 
     if (pp != null) 
     { 
      IntPtr h = pp.MainWindowHandle; 
      SetForegroundWindow(h); 
     } 

     SendKeys.SendWait("\\\\nas01\\qa\\TestFiles\\" + FileNameToAttach); 
     Thread.Sleep(3000); 
     SendKeys.SendWait("{ENTER}"); 
     Thread.Sleep(3000); 
    } 

다음 단계 내가 td TAGNAME 특정 텍스트가 있는지 여부를 확인하고 있습니다 것입니다. 파일을 업로드 한 후 td에는 방금 업로드 한 전체 파일 이름이 포함되어야합니다.

public bool CheckFileNameToUploadExists(string FullFileName) 
    { 

     bool IsFileExist = false; 
     WebDriverWait wait = new WebDriverWait(_webdriver, new TimeSpan(0, 0, 30)); 
     var TDs = wait.Until(x => x.FindElements(By.TagName("td"))); 
     for (int i = 0; i < TDs.Count - 1; i++) 
     { 
      var td = TDs[i].Text.ToString(); 
      Thread.Sleep(2000); 
      _test.Log(LogStatus.Pass, td); 
      if(td == FullFileName) 
       IsFileExist = true; 
     } 
     return IsFileExist; 
    } 

존재하지 않으면 어설 션이 호출되고 있습니다. 그게 실패작이야.

+0

'오류 메시지'란 무엇입니까? – Smartis

+0

원격 데스크톱 세션이 연결되어 있지 않은 상태에서 실행할 때 불가능할 수있는 '대화식 모드'에서 실제 Windows가 팝업되는 요구 사항과 관련 될 수 있습니다. 당신의 코드는 키가 눌려 질 수 있고 윈도가 움직일 수있는 대화 형 환경을 가정하는 것으로 보인다. 활성 RDP 세션이없는 경우에는 그렇지 않습니다. – Baldrick

+0

방금 ​​내 게시물을 편집했습니다. 그것이 무엇이든 의미한다면. –

답변

2

원격 Destktop 세션을 종료하면 Destkop을 "종료"하므로 SetForegroundWindow에 접근 할 수 없습니다.

for /f "skip=1 tokens=3" %%s in ('query user %USERNAME%') do (
    %windir%\System32\tscon.exe %%s /dest:console 
) 

을 그리고 당신은 세션을 종료 할 때 관리자로, 실행 :

당신은 RDP 세션을두고

대신 로그 아웃/응용 프로그램을 닫기, 당신은이 작은 스크립트를 작성할 수 있습니다.

+0

문제가 'SetForegroundWindow'인 것 같습니다.이 경우에는 –

+0

으로 예상 했으므로 불행히도 도움이되지 않았습니다. –

+1

ok 트릭을했습니다. 방금 연 Chrome 브라우저를 닫는 것을 잊었습니다. –

관련 문제