我为 .NET 应用程序编写了 NUnit 测试。当我运行 NUnit 时,它不会从配置文件中读取连接字符串值。我尝试了许多没有成功的解决方案,比如
- 在 NUnit 加载 DLL 文件的路径中添加 <程序集名称>.dll.config 文件。
- 在 NUnit.exe.config/NUnit.gui.config 中添加配置设置
即使在 VSNunit 中运行,我也无法读取配置设置。有解决办法吗?
我假设
SomeNameSpace.MyClassLib
SomeNameSpace.MyClassLib.Test
试试这个:
确保你也复制app.config
了你的 NUnit 测试 DLL 类库(即项目SomeNameSpace.MyClassLib.Test
)。
构建您的 NUnit 项目(例如 to SomeNameSpace.MyClassLib/bin/debug
)并确保以下内容位于 bin\debug(或发布)目录中
SomeNameSpace.MyClassLib.Test.config
)在 NUnit GUI 项目编辑器的 XML 视图中编辑您的 NUnit 项目(菜单Project → Edit,或者只是在记事本中编辑它),并确保测试程序集 (MyClassLib.Test.dll) 和配置文件名称是相对于你的应用程序库
例如,
<NUnitProject>
<Settings activeconfig="Debug" processModel="Default"
domainUsage="Default"
appbase="C:\Temp\MyProject\MyClassLib.Test" />
<Config name="Debug" binpathtype="Auto"
configfile="bin\Debug\MyClassLib.Test.dll.config">
<assembly path="bin\Debug\MyClassLib.Test.dll" />
</Config>
<Config name="Release" binpathtype="Auto" />
</NUnitProject>
将app.config
文件添加到测试项目并在其中添加您的配置。
然后,您必须告诉 NUnit 使用什么配置,因为默认情况下它不会获取app.config
文件。
有关如何使用屏幕截图进行设置的更多信息。
我被困在一个类似的问题上一段时间。我们还需要查看您是如何加载程序集的,基于配置文件的命名更改(除非您使用设置中的显式配置文件)。如此处所述:
http://www.nunit.org/index.php?p=configFiles&r=2.2.10
如果正在加载单个程序集,则为配置文件指定带有 config 扩展名的程序集文件的名称。例如,用于运行 nunit.tests.dll 的配置文件必须命名为 nunit.tests.dll.config,并且与 DLL 文件位于同一目录下。
如果正在加载 NUnit 项目,则配置文件使用扩展名更改为配置的项目文件的名称。例如,项目 AllTests.nunit 需要一个名为 AllTests.config 的配置文件,该文件位于与 AllTests.nunit 相同的目录中。加载 Visual Studio 项目或解决方案时遵循相同的规则。