unit-testing - NUnit GUI 未找到 app.config 文件

标签 unit-testing testing nunit app-config

我有一个 ASP.NET MVC 应用程序,我正在使用 NUnit 为其编写测试。当我运行测试时,NUnit GUI 无法找到 app.config。我的 NUnit 测试项目与 app.config 文件的副本位于 bin/debug 文件夹中:

我的 NUnit 项目具有以下设置:

<NUnitProject>
    <Settings activeconfig="Default"
              processModel="Default"
              domainUsage="Default"
              appbase="C:\Sandbox\HB2\HB2.UnitTests" />

    <Config name="Default"
            binpathtype="Auto"
            configfile="app.config"
            path="C:\Sandbox\HB2\HB2.UnitTests\bin\debug\">

        <assembly path="bin\debug\HB2.UnitTests.dll" />

    </Config>
</NUnitProject>

从我读过的几篇文章中,我认为 NUnit 应该能够找到 app.config 文件,但事实并非如此。怎么了?

最佳答案

您似乎正在使用 NUnit 项目文件。如果是这样,您将拥有一个类似于 MyTestProject.nunit 的文件。 .当您使用项目文件时,而不是为项目中包含的特定程序集使用默认的 app.config,NUnit 将默认查找与 Nunit 项目文件同名的文件。所以在我的例子中它将是 MyTestProject.config .你没有说你的项目是什么,所以我不能给你一个准确的答案......

它以这种方式工作,因为一旦您开始在项目文件中包含更多程序集,它就会明确使用哪个配置变得很重要。如果您总是要使用来自特定程序集的配置,那么保持两者同步的一种简单方法是设置一个构建后步骤,将配置从该程序集复制到 .config 位置。

如果您在 GUI 中打开单个程序集,而不是使用项目文件,那么它将选择与该 dll 关联的配置(因此在您的示例中为 HB2.UnitTests.dll.config)

当我编辑您的问题时,我注意到您正在设置要在项目文件中使用的配置文件。但是,您将其设置为错误的东西。当您编译生成类库的项目时,app.config 会被编译重命名。正如我上面所说,这通常是 <ouputassembly>.config .因此,您应该在项目文件中更新这一行:

<Config name="Default" binpathtype="Auto" configfile="app.config" 
        path="C:\Sandbox\HB2\HB2.UnitTests\bin\debug\">

对此:

<Config name="Default" binpathtype="Auto" configfile="HB2.UnitTests.dll" 
        path="C:\Sandbox\HB2\HB2.UnitTests\bin\debug\">

关于unit-testing - NUnit GUI 未找到 app.config 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30856744/

相关文章:

c# - Watin 在集成测试中截取黑色屏幕截图

c# - 让 NUnit 在 Visual Studio Community 2017 下工作

nunit - 如何在 TeamCity NUnit runner 中获取当前的 TestContext

ruby-on-rails - 如何测试运行 SQL 查询的方法

c++ - GTest-如何通过SetUp方法为多次使用准备数据?

testing - Unity游戏在线beta测试平台

testing - 如何从命令行运行 testcafe studio 测试

Python 单元测试调用困惑

Android - gradle testProguardFile - 它与单元测试相关的目的是什么

django - 自定义用户模型破坏身份验证测试