gpt4 book ai didi

nunit - SpecFlow 错误地使用 NUnit

转载 作者:行者123 更新时间:2023-12-01 13:53:52 25 4
gpt4 key购买 nike

我刚刚(今天)第一次尝试了 SpecFlow。我正在通过在 VS2010 Pro 中创建一个新的类库并添加一个 SpecFlow Feature Definition 文件来进行尝试。

问题是,集成似乎没有正常工作,有各种不同的错误。我选择 MsTest 作为测试运行程序,因为我不会为调用 NUnit 而烦恼(我想长期使用 NUnit,但目前我只想让一些 BDD 代码工作)。然而,生成的代码文件继续引用 NUnit - 这显然是错误的,因为我刚刚告诉 SpecFlow 使用 MsTest 运行。我已经做了所有我能想到的再次调用代码生成的工作,包括使用在工具 > 选项 > SpecFlow 中选择的 MsTest 选项创建一个全新的类库项目。

如果我将测试运行程序字段设置为“自动”并右键单击功能文件,然后选择“运行 SpecFlow 方案”,则会收到错误消息“找不到匹配的测试运行程序”。

如果我改为将测试运行程序字段更改为 MsTest,则在执行相同操作时会收到不同的错误消息 - “未将对象引用设置为对象的实例”。我对此并不感到惊讶,因为它仍在尝试运行 NUnit 测试,即使我已经明确要求使用 MsTest,但显然它不应该 nullref 并将其呈现给用户。

我究竟做错了什么?该文档没有帮助,据我所知,没有常见问题解答。

编辑 #1 :我已经确定我正在寻找的实际设置是使用 App.Config 提供的。使用字段 <unitTestProvider name="MsTest" /> .我可以看到发生了什么 - Visual Studio 选项菜单中的字段似乎没有修改您当前正在处理的项目。问题是,这使得该领域看起来根本没有做任何事情。我现在已经说服 SpecFlow 生成 MsTest 类并使用 MSTest 运行程序运行。

所以现在问题变成了一个稍微不同的问题: Tools > Options > SpecFlow > Test Runner Tool 字段有什么作用(如果有的话)?

最佳答案

对于 VS2010,正确的值是 MsTest.2010,而不是文档中的 MsTest。更改您的 app.config(用于测试程序集),它会正常工作(至少在 SpecFlow 1.8 中)

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="specFlow" type="TechTalk.SpecFlow.Configuration.ConfigurationSectionHandler, TechTalk.SpecFlow" />
</configSections>
<specFlow>
<unitTestProvider name="MsTest.2010" />
<!-- For additional details on SpecFlow configuration options see https://github.com/techtalk/SpecFlow/wiki/Configuration -->
</specFlow>
</configuration>

关于nunit - SpecFlow 错误地使用 NUnit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8021477/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com