Specflow 2.3.2:为什么Specflow使用“ Microsoft.VisualStudio.TestTools”而不是“ NUnit.Framework”生成* .cs文件

时间:2019-08-12 14:57:39

标签: c# nunit specflow

问题:为什么Specflow使用Microsoft.VisualStudio.TestTools.UnitTesting.TestClassAttribute()为功能文件而不是NUnit.Framework生成* .cs代码?从我所见,下面介绍的两种解决方案都使用相同的NuGet软件包。


详细信息

我有一个项目在* .cs文件后面生成Specflow代码,并且仅使用NUnit。 Specflow codebehind using all NUnit

还有另一个项目(在单独的解决方案中),该项目始终使用“ Microsoft.VisualStudio.TestTools.UnitTesting.TestClassAttribute()”,而不是使用NUnit Fromework。 Specflow codebehind which always wants to use MS testtools unit testing

我在第二个解决方案中搜索了“ VisualStudio.TestTools”一词,它显示的唯一位置是在TechTalk.SpecFlow.Reporting.dll中。

问题:为什么Specflow使用Microsoft.VisualStudio.TestTools.UnitTesting.TestClassAttribute()为功能文件而不是NUnit.Framework生成* .cs代码?从我所见,这两种解决方案都使用相同的NuGet软件包。

1 个答案:

答案 0 :(得分:1)

在Specflow 2.3.2中,您需要在App.config中具有此“ unitTestProvider”。但是,是的,您可能应该升级到3.0

<specFlow>
<plugins>
  <add name="SpecRun" />
  <!--<add name="SpecFlow.Retry" path="..\packages\SpecFlow.Retry.2.4.0\lib\net45" type="Generator" />-->
</plugins>

<!-- For additional details on SpecFlow configuration options see http://go.specflow.org/doc-config -->
<!-- use unit test provider SpecRun+NUnit or SpecRun+MsTest for being able to execute the tests with SpecRun and another provider -->
<unitTestProvider name="SpecRun+NUnit" />
</specFlow>