1

これをGoogleグループのSpecFlowに投稿しましたが、そこにはほとんどまたはまったく活動がないので、ここに行きます.

SpecFlow/Selenium/MSBuild プロジェクトがあり、次のようなコマンド ラインを介して1 つの単純なシナリオを実行しています。

SpecRun.exe run Default.srprofile "/filter:@%filter%"

ブラウザ インスタンスが起動し、アサートが完了して、ブラウザ インスタンスが閉じます。これには約 5 ~ 10 秒かかります。

ただし、この後、SpecRun プロセスが閉じて次のような結果が得られるまで 60 秒間待機する必要があります。


Discovered 1 tests
Thread#0:
0% completed
Thread#0: S
100% completed

Done.
Result: all tests passed
Total: 1
Succeeded: 1
Ignored: 0
Pending: 0
Skipped: 0
Failed: 0

Execution Time: 00:01:01.1724989

私は現在、これがテスト実行レポートをディスクに書き込んでいるためだと推測しています..しかし、これをオフにする方法がわかりません... http://www.specflow.org/documentation/Reporting/ そして、私はできるこれに 60 秒かかる理由や、これをさらにデバッグする方法がわかりません。

AfterScenario を削除し、セレン ドライバーの終了/終了を確認し、それが問題の原因ではないことを確認しました。

誰でもこれに光を当てることができますか?

ありがとうございました

4

1 に答える 1

0

イエス。BaseStepDefinitions に深刻な問題がありました。さらにデバッグを行ったところ、BeforeScenario が 1 回のテストで 25 回ヒットしたことがわかりました。1 つのシナリオごとに 25 のインスタンスが起動され、閉じられました。次のようなクリーンなファイルで最初からやり直すことで修正されました。

[Binding]
public class BaseStepDefinitions
{
    public static IWebDriver Driver;

    private static void Setup()
    {
       Driver = new ChromeDriver();
    }

    [BeforeFeature]
    public static void BeforeFeature()
    {
        Setup();
    }

    [AfterFeature]
    public static void AfterFeature()
    {
        Driver.Dispose();
    }
}

元のファイルは恥ずかしいので投稿しません。

これは私を助けた同様の問題ですhttps://groups.google.com/forum/#!topic/specflow/LSt0PGv2DeY

于 2014-09-02T12:35:46.093 に答える