【发布时间】:2014-05-23 23:36:17
【问题描述】:
为了将 SpecFlow 测试添加到一系列 WPF 应用程序中,我目前正在尝试将 SpecFlow 与 VS.NET 2012 中的一个非常简单的 WPF 测试应用程序结合起来。
我关注steps outlined in SpecFlow's getting-started,区别在于我有一个包含两个项目的解决方案(WPF 一个和 SpecFlow 一个)。
我有一个单一的场景和步骤定义。 不幸的是,测试资源管理器中没有列出任何测试并选择“运行 SpecFlow 场景”(按照 getting started 中的第 6 步)没有任何反应。 在发现 VS.NET 2012 上的 NUnit 测试适配器后,需要我可以运行测试。不幸的是,我现在很难打开被测窗口:
namespace SpecOverflow
{
[Binding]
public class StepDefinitions
{
static private BackgroundWorker _bw = new BackgroundWorker();
private MainWindow win;
[BeforeScenario]
public void CreateWindow()
{
// Need to run this in a separate thread because we get "The calling thread must be STA, because many UI components require this." errors otherwise
_bw.DoWork += (_,__) => { win = new MainWindow(); };
_bw.RunWorkerAsync();
while (_bw.IsBusy)
;
}
...
}
}
然而,这似乎并没有创建一个窗口(我在使用它的第一个构建步骤中得到一个 NullReferenceException)。
我应该补充一点,我在 VS.NET 方面的经验超过 0 次,但几乎没有(可能 2 年内不到 100 小时,我获得的大多数 C# 经验都是 Mono)。我正在尝试做这个项目,因为我现在有一些时间,一位同事问我。
【问题讨论】: