【问题标题】:App.config for SpecFlow not recognized by NUnit GUI runnerNUnit GUI 运行程序无法识别 SpecFlow 的 App.config
【发布时间】:2011-02-27 03:04:26
【问题描述】:

如何让 NUnit GUI 运行程序识别/使用我的 App.config 文件?我已经尝试将它放在我项目的顶部文件夹中,并且与我的功能文件位于同一文件夹中。以下是我的 App.config 文件的内容:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="specFlow" type="TechTalk.SpecFlow.Configuration.ConfigurationSectionHandler, TechTalk.SpecFlow"/>
  </configSections>

  <specFlow>
    <runtime detectAmbiguousMatches="true"
             stopAtFirstError="false"
             missingOrPendingStepsOutcome="Error" />
  </specFlow>
</configuration>

具体来说,我试图告诉 NUnit 在缺少或未决步骤时产生失败结果,这就是我为此指定“错误”的原因。这实际上在我使用 TestDriven.net 时可以正常工作,但在我使用 NUnit GUI 运行程序时却不行。 GUI 始终显示一个绿色条,并将测试显示为 Inconclusive 而不是 Error 或 Failed。

我正在使用这个命令行参数启动 GUI:

E:\Program Files\NUnit 2.5.5\bin\net-2.0\nunit.exe "E:\ACSreader new work\ACSreader2 Working Copy\trunk\ACSreader2\ACSreader2.sln" /config:Test

【问题讨论】:

  • 我发现问题是特定于 NUnit GUI 运行器,所以我更新了我的原始帖子

标签: nunit specflow


【解决方案1】:

关于 NUnit GUI Runner 的更新:

NUnit-Runner 似乎无法正确显示/报告不确定的测试。一个不确定的测试在 NUnit-GUI 中显示为绿色,而 TestDriven 和 ReSharper 显示为黄色。

如问题所示,SpecFlow 可以配置为将缺少的步骤报告为错误而不是不确定。

配置发生在包含功能文件的项目的 App.config 中。应用了 .NET 中 App.config 的常用机制。这意味着在运行时配置信息必须在一个名为 .dll.config 的文件中。然后运行时将配置提供给 SpecFlow。 SpecFlow 不会从 App.config 中读取配置本身!

确保在运行时正确命名的配置文件存在于包含测试装置的 dll 旁边。 VisualStudio 通常在构建项目时透明地执行此操作。


原答案:

App.config 必须位于包含测试装置的项目(包含功能文件的项目)的根文件夹中。

查看 github 上的示例。不同项目中有几个 App.config 文件:

http://github.com/techtalk/SpecFlow-Examples/tree/master/ASP.NET-MVC/BookShop/BookShop.AcceptanceTests/

http://github.com/techtalk/SpecFlow-Examples/tree/master/ASP.NET-MVC/BookShop/BookShop.AcceptanceTests.Selenium/

http://github.com/techtalk/SpecFlow-Examples/tree/master/BowlingKata/BowlingKata-MsTest/Bowling.SpecFlow/

【讨论】:

  • 感谢您的帮助。我已经尝试过了,但没有任何区别。我注意到与示例的唯一不同之处在于我的 .feature 文件位于项目的子文件夹中。我将尝试将 App.config 和 .feature 文件都放在项目的根文件夹中。
  • 将所有内容放在根目录下并没有帮助我。我已经更新了我原来的帖子,因为这个问题是特定于 NUnit GUI 的。
【解决方案2】:

看我的回答nunit and configs 您需要告诉 nunit 配置文件的名称是什么。默认情况下它会查找 namespace.config 它接缝

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-03
    • 1970-01-01
    • 2019-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-31
    • 1970-01-01
    相关资源
    最近更新 更多