在SpecRun的特性在所有线程上运行之前

时间:2015-12-23 05:41:25

标签: c# selenium parallel-processing specflow specrun

我一直在使用SpecRun,并发现它在所有可用线程中执行BeforeFeature和AfterFeature步骤的行为。我希望它只会“执行一次并在单个线程上执行上述步骤”。

3线程执行的理想场景是:

  1. 将在Thread 1
  2. 上执行BeforeFeature步骤
  3. 场景1将在线程1上执行,场景2将在线程2上执行,场景3将在线程3上执行
  4. 在线程1
  5. 上执行功能步骤之后

    现在发生的实际情景:

    1. 在Thread1上执行BeforeFeature步骤,BeforeFeature步骤是 在Thread2上执行,在Thread3上执行BeforeFeature步骤
    2. 场景1在线程1上执行,场景2在线程2上执行,场景3在线程3上执行
    3. 在Thread1上执行AfterFeature步骤,在Thread2上执行AfterFeature步骤,在Thread3上执行AfterFeature步骤
    4. 我正在使用Selenium WebDriver 2.47.0SpecRun1.2Specflow 1.9

1 个答案:

答案 0 :(得分:0)

SpecRun具有此行为,因为前/后功能适用于功能文件中的所有方案和方案轮廓示例。

根据您的配置,SpecRun会在不同的线程或不同的进程上安排不同的方案。由于您可以在其他步骤绑定中使用某些特定于线程的内容,因此必须为每个线程执行后/前步骤。

您在前/后功能步骤中做了什么? Testrun之前/之后不能用于您的用例吗?