2

Mtest、Specflow、Ranorex を使用した自動化スイートがあります。

テスト対象の WPF アプリケーションは大きく、MS Word、ブラウザ、Sharepoint、Abobe などの多くのアプリケーションとやり取りします。そのため、自動化テストのフローに問題が発生し、テストがハングすることがあります。このハング時間は、VS/MsTest の 30 分の既定のタイムアウトが経過するまで続き、アプリケーションが強制終了されて次のテストが開始できるようになります。

この待ち時間を減らしたい。Google で常に表示される 2 つのオプションがあります。

  1. [テスト方法、タイムアウト(x)] を設定します。
  2. Local.testsettings テスト タイムアウト値を編集します。

ただし、次の理由により、これらの条件ではどちらも機能しないようです。

  1. Specflow は、以下に示すように追加された MsTest 属性を無視します。

        [TestMethod, Timeout(1000)]
        [When(@"I test")]
        public void WhenITest()
        {
            // some code
        }
    
  2. 「.testsettings ファイルを使用すると、サードパーティのテスト フレームワークからテストを実行できなくなります。」 ソース

したがって、回避策が必要です。そして、これを行う最善の方法は、Specflow フックを直接使用することです(回答 3 で提案されているように)。しかし、これを巨大なフレームワークに実装し、すべての機能ファイルにタグが追加されるようにするには、人的エラーが発生する可能性があるようです。

同様の問題を克服した人はいますか?

4

3 に答える 3

0

したがって、上記のオプション 2 が最終的にうまくいったことがわかりました。 * Local.testsettings のテスト タイムアウト値を編集します。

修正は、Local.testsettings を TeamCity ビルド ステップの追加パラメーターとして指定する必要があることでした。

例: TeamCity - ビルドステップ

  • ランナー タイプ = MsTest

  • アセンブリ ファイルのリスト = /MyProject/UITests.dll

  • 追加のコマンド ライン パラメーター = /testsettings:"Trunk/Tests/AutomationTests/ProjectName/local.testsettings"

于 2015-07-09T09:26:11.940 に答える