2014-08-28 85 views
1

将此内容发布到谷歌组织SpecFlow上,但是这里没有任何活动,所以我们现在就去。SpecRun.exe在执行测试后挂起60秒

我有一个SpecFlow /硒/ 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,并检查硒驱动程序退出/关闭,并验证这不是什么导致问题。

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

谢谢

回答

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