私は、勤務先の会社での手動テストの一部を自動化するために、コード化されたUIテストを作成しようとしています。Visual StudioのCUIT部分はかなり新しいですが、理解しているような気がします。ただし、他のテストを実行する前にテストスレッドが閉じられるという問題があります。
したがって、このテストを完全に自動化したいと思います。開発者が行う必要があるのは、[すべて実行]をクリックするだけで、すべて自動的に実行されます。私が抱えている問題は、最初のテストでInternet Explorerを起動し、Webサイトにアクセスして、Webサイトにログインする必要があることです。残りのテストは、システムへのログインに基づいています。ただし、最初のテストの後、ブラウザは閉じて、最初のテストメソッドとともに強制終了されます。
これに関するアドバイスは素晴らしいでしょう。私はいくつかの答えをオンラインで検索しましたが、多くは非常に古いバージョンのVisual Studioであり、私が試したものは機能しません。
ありがとうございました。
編集:したがって、各クラス内で「CodedUITest1.cs」と言うと、そのクラスにある[テストメソッド]のそれぞれで同じブラウザーを使用できます(以下に誰かが提案しているように)。私が抱えている問題は、別のテストクラスで別の機能「CodedUITest2.cs」をテストする場合、最初のクラスがテストを終了するとブラウザが閉じることです。
私があなたの質問を正しく理解しているなら、このコードセグメントはあなたのために働くはずです:
BrowserWindow window;
[TestMethod]
public void Method1()
{
window = BrowserWindow.Launch(new Uri("http://www.bing.com"));
window.CloseOnPlaybackCleanup = false;
}
[TestMethod]
public void Method2()
{
window = BrowserWindow.Locate("Bing");
window.CloseOnPlaybackCleanup = false;
}
[TestMethod]
public void Method3()
{
window = BrowserWindow.Locate("Bing");
}
この質問の新しい情報を読んだ後、私はコードを少しテストしました。CodeUITes1.csとCodedUITest2.csの間でブラウザを開いたままにしておきたい場合は、次のコードセグメントが役立つ場合があります。次のリンクから採用されます:https://blogs.msdn.microsoft.com/devops/2012/11/08/coded-ui-test-why-does-application-close-after-each-test-in-ビジュアルスタジオ-2012 /
ファイル:CodedUITest1.cs
public class CodedUITest1
{
static BrowserWindow browserWindowInstance = null;
public void LoadLocalHost()
{
if (browserWindowInstance == null)
{
browserWindowInstance = BrowserWindow.Launch(new System.Uri("YourWebSiteAddress"));
browserWindowInstance.CloseOnPlaybackCleanup = false;
browserWindowInstance.Maximized = !browserWindowInstance.Maximized;
}
else
{
browserWindowInstance.Maximized = !browserWindowInstance.Maximized;
}
}
[TestMethod]
public void CodedUITestMethod1()
{
LoadLocalHost();
// To generate code for this test, select "Generate Code for Coded UI Test" from the shortcut menu and select one of the menu items.
this.UIMap.ClickNewsAndEvents();
}
CodedUITest2.csファイル:
[TestMethod]
public void CodedUITestMethod2()
{
CodedUITest1 obj1 = new CodedUITest1();
obj1.LoadLocalHost();
// To generate code for this test, select "Generate Code for Coded UI Test" from the shortcut menu and select one of the menu items.
this.UIMap.ClickNewsPage();
}
CodedUITestクラスをさらに追加できます。CodedUITest2クラスのコードサンプルにobj1のような新しいオブジェクトを作成し、後続のクラスのCodedUITest1.classにあるLoadLocalHost()メソッドを使用するだけです。これがあなたの問題を解決することを願っています。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加