Nunit gui找不到app.config文件

时间:2015-06-15 23:46:33

标签: unit-testing testing nunit app-config

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

我的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,但它并没有。怎么了?

1 个答案:

答案 0 :(得分:0)

您似乎正在使用NUnit项目文件。如果是这样,您将拥有类似MyTestProject.nunit的文件。当您使用项目文件时,NUnit将默认查找与Nunit项目文件同名的文件,而不是使用项目中包含的特定程序集的默认app.config。所以在我的例子中它将是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\">