2017-04-25 17 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タグ変数は、特定のテキストを持っているかどうかをチェックしてるということです。 ファイルをアップロードした後、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; 
    } 

アサーションが存在しない場合、アサーションが呼び出されています。それはactaully失敗です。

+0

「エラーメッセージ」とは何ですか? – Smartis

+0

これは、実際のウィンドウが「対話モード」でポップアップする要件に関連する可能性があります。これは、リモートデスクトップセッションが接続されていない状態で実行すると不可能かもしれません。あなたのコードは、キーを押したり、ウィンドウを移動させたりできるインタラクティブな環境を想定しているようです。アクティブなRDPセッションがない場合、これは当てはまりません。 – Baldrick

+0

が私の投稿を編集しました。それが何かを意味するならば。 –

答えて

2

リモートDestktopセッションを終了すると、Destkopを「強制終了」しており、SetForegroundWindowにはアクセスできません。

あなたがRDPセッションを離れる場合は、代わりにログアウトの/アプリケーションを閉じて、あなたはこの小さなスクリプトを書くことができます。

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

をそして、あなたは管理者として、セッションを終了したいときにそれを実行します。

+0

問題が「SetForegroundWindow」であることがわかりませんが、このケースでは –

+0

と思っていましたが、残念ながらそれは助けになりませんでした –

+1

それはトリックでした。私は開かれたChromeブラウザを閉じるのを忘れてしまった。 –

関連する問題