WPF& Specflow&编码的UI测试:在没有重新启动应用程序的情况下使用示例时出现异常

时间:2013-05-27 13:46:23

标签: coded-ui-tests specflow

我正在使用Specflow和编码的UI测试来检查WPF应用程序中的输入验证是否按预期工作。我有以下功能:

@InputValidation
Feature: Foo

Scenario Outline: Bar
    Given I am in the input screen
    When <input> is entered into text box
    Then the text box has the status <status>

Examples: 
 | input   | status  |
 | ""      | invalid |
 | "0"     | invalid |
 | "42"    | valid   |

只要我在每个场景块(AfterScenarioBlock(“InputValidation”)之后重新启动应用程序),它都能正常工作。不幸的是,在夜间构建期间需要花费大量时间,因为我必须启动整个应用程序,进行输入,检查状态并关闭表中每个数据集的应用程序。

我的问题是我得到一个异常(“编码的UI测试在COM的单线程单元(STA)模式下运行。在这种模式下,所有的回放调用只能从TestMethod线程发生,而UITestControl不应该是在TestMethods上共享。“)当我尝试不重启时使用例子。

原因似乎是,Specflow为示例表中的每一行生成一个新的TestMethod。这些方法具有所有不同的线程,因此无法访问相同的UI元素。

我不确定这个,因此想询问是否有任何其他原因导致此异常,以及是否可以在不重启的情况下使用Examples或在不同的测试方法之间共享UI元素。

0 个答案:

没有答案