【问题标题】:NUnit GUI is not finding the app.config fileNUnit GUI 没有找到 app.config 文件
【发布时间】:2015-08-31 15:10:02
【问题描述】:

我有一个 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 文件,但事实并非如此。怎么了?

【问题讨论】:

    标签: unit-testing testing nunit app-config


    【解决方案1】:

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

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

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

    当我编辑您的问题时,我注意到您正在设置要在项目文件中使用的配置文件。但是,您将其设置为错误的东西。当你编译一个生成类库的项目时,app.config 会被编译重命名。正如我上面所说,这通常是&lt;ouputassembly&gt;.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\">
    

    【讨论】:

    • 很好的解释,比我读过的许多其他文章都清楚。谢谢你。在它能够找到配置之前,我确实必须更改为“configfile="bin\debug\HB2.UnitTests.dll"。
    猜你喜欢
    • 1970-01-01
    • 2011-02-27
    • 2021-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-15
    • 2011-03-27
    相关资源
    最近更新 更多