1

将此发布到谷歌群组 SpecFlow,但那里几乎没有活动,所以我们开始吧。

我有一个 SpecFlow/Selenium/MSBuild 项目,我正在通过命令行运行一个简单的场景,如下所示:

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

浏览器实例启动,断言完成,浏览器实例关闭。这大约需要 5-10 秒。

但是:在此之后,我必须等待 60 秒,直到 SpecRun 进程关闭并给出如下结果:


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 并检查了 selenium 驱动程序退出/关闭并验证这不是导致问题的原因。

任何人都可以对此有所了解吗?

谢谢

4

1 回答 1

0

耶稣。BaseStepDefinitions 存在严重问题。进行了更多调试,发现 BeforeScenario 在一次测试中被击中 25 次。每个单一场景启动和关闭 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 回答