3

Web アプリケーションに Visual Studio 2012 のコード化された UI テストを使用しています。ブラウザを起動し、ログインダイアログを見つけ、資格情報を入力してから[OK]をクリックするアプリにログインするためのテストがあります。ログイン後に正しい URL をチェックするアサーションがあります。このテストは正しく機能しているようです。私の問題は、テストの実行後にブラウザーが閉じられることです。次のテストを順番に実行できるように、ブラウザーを開いたままにしておく必要があります。どうすればいいですか?

現時点では、[TestCleanup()] セクションには何もありません。私が探しているものがここにあると仮定していますが、これまでのところ、それがどうあるべきかを理解するのに多くの運がありませんでした.

4

3 に答える 3

2

このソリューションを見つけた元のソースはありません:(以下に示すようなメソッドを使用できます。このメソッドはTestSetupで呼び出す必要があります。また、タイプBrowserWindowのクラスレベル変数_browserWindowを宣言します

private void SetBrowser()
    {
        if(_browserWindow == null)
        {
            BrowserWindow.CurrentBrowser = "ie";
            _browserWindow = BrowserWindow.Launch("http://www.google.com");
            _browserWindow.CloseOnPlaybackCleanup = false;
           _browserWindow.Maximized = !_browserWindow.Maximized;
        }
        else
        {
            BrowserWindow.CurrentBrowser = "ie";
            _browserWindow = BrowserWindow.Locate("Google");
           _browserWindow.Maximized = !_browserWindow.Maximized;
        }

    }
于 2013-02-23T15:10:53.240 に答える
0

Visual Studio 2015 でのデータ ドリブン コード化された UI テストでは、次の方法が機能することがわかりました。

[ClassInitialize] を使用してブラウザを開き、[TestMethod] の開始位置に従ってブラウザを開きます。

テスト クラスのすべてのメソッドが実行された後、[ClassCleanup] を使用してリソースを解放します。

[TestInitialize] を使用してクラスを初期化し、[TestCleanup] を使用してテストをクリーンアップした後、異なるテスト メソッドをリダイレクトできます。ただし、これらは各テスト メソッドで発生し、ブラウザー インスタンスを閉じると次のテストが失敗するため、注意してください。

private static BrowserWindow browserWindow = null;

[ClassInitialize]
public static void ClassInitialize(TestContext context)
{
    Playback.Initialize();
    browserWindow = BrowserWindow.Launch(new Uri("http://198.238.204.79/"));          
}

[ClassCleanup]
public static void TestCleanup()
{
    browserWindow.Close();
    Playback.Cleanup();
}
于 2016-07-25T23:16:06.830 に答える
0

さて、私が必要としていたのは、各テストの前に起動してログインすることでした。最初にブラウザとログインのテストを実行してから、追加の各テストを実行したいと考えました。詳細を読んだ後、私が実際に望んでいたのは、このロジックを各テストの初期化コードとして実行することであると判断しました。Visual Studio 2012 でコード化された ui プロジェクトを開始したときに生成された既定の [TestInitialize()] にこのコードを追加することで、これを行いました。

于 2013-01-21T19:43:35.567 に答える