【发布时间】:2011-12-22 17:12:21
【问题描述】:
我刚刚(今天)第一次尝试了 SpecFlow。我正在尝试在 VS2010 Pro 中创建一个新的类库并添加一个 SpecFlow 功能定义文件。
问题是,集成似乎无法正常工作,出现各种不同的错误。我选择了 MsTest 作为测试运行器,因为我不会为调用 NUnit 而烦恼(我想长期使用 NUnit,但目前我只想让一些 BDD 代码工作)。然而,生成的代码文件继续引用 NUnit——这显然是错误的,因为我刚刚告诉 SpecFlow 使用 MsTest 运行。我已经尽我所能再次调用代码生成,包括使用在工具 > 选项 > SpecFlow 中选择的 MsTest 选项创建一个全新的类库项目。
如果我将测试运行器字段设置为“自动”并右键单击功能文件,然后选择“运行 SpecFlow 场景”,我会收到一条错误消息“找不到匹配的测试运行器”。
如果我改为将测试运行器字段更改为 MsTest,我会在执行相同操作时收到不同的错误消息 - “对象引用未设置为对象的实例”。我对此并不感到惊讶,因为即使我已明确要求 MsTest,它仍在尝试运行 NUnit 测试,但显然它不应该为 nullref 并将其呈现给用户。
我做错了什么?文档没有帮助,据我所知,没有常见问题解答。
edit #1:我已经确定我正在寻找的实际设置是使用App.Config 使用字段<unitTestProvider name="MsTest" /> 提供的。我可以看到发生了什么 - Visual Studio 选项菜单中的字段似乎没有修改您当前正在处理的项目。问题是,这使得该字段看起来根本没有做任何事情。我现在已经说服 SpecFlow 生成 MsTest 类并使用 MSTest 运行程序运行。
所以现在问题变成了一个稍微不同的问题:Tools > Options > SpecFlow > Test Runner Tool 字段做了什么(如果有的话)?
【问题讨论】: