我在视觉工作室中创建了一个“nunit”项目,其中包含一个简单的测试。没有可用的默认“App.config”文件,因此我创建了一个“App.config”文件。我已从其“属性”选项中将此文件标记为“始终复制”。
我尝试通过“ConfigurationManager.AppSettings”和“system.configuration.configurationmanager.AppSettings”两种方式从“config”文件中读取值。但是,它显示空值(空值)
请查看我的代码。
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Configuration;
using System.IO;
using System.Text;
using log4net;
using NUnit.Framework;
using NUnitTestProject1.Config;
using NUnitTestProject1.Helper;
namespace NUnitTestProject1.AutomationTest
{
[TestFixture, Order(3)]
public class ReadDataThoughExcel
{
private static readonly ILog log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
[Test, Order(1)]
public void IsUserReadDataThroughExcel() {
string data1 = ConfigurationManager.AppSettings["name"];
Console.Write("Print data "+data1);
string data2 = system.configuration.configurationmanager.AppSettings["name"];
Console.Write("Print data "+data2);
}
}
}
like so
配置文件代码如下:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<ApplicationSettings>
<add key="name" value="Configuration Example Project"/>
</ApplicationSettings>
</configuration>
like so
我的项目的配置详情:
注意: 另外,我尝试通过右键单击“依赖项”选项(显示在 Visual Studio 中的项目名称内)来将“system.configuration”的引用添加到我的项目中,但是我无法请参阅“类型库”选项中的“system.configuration”选项。
您正在测试的应用程序可能已经有一个配置文件。此外,NUnit 本身可能有自己的配置文件。为了避免冲突,NUnit 始终要求专门命名用于 tests 的配置文件。
具体来说,如果包含测试的程序集名为
mytests.dll
,那么 NUnit 将在您的 bin 目录中查找名为 mytests.config
的配置。
有关详细信息,请参阅我的博客文章http://charliepoole.com/technical/how-nunit-finds-config-files.html。 [如此旧的帖子仍然有用,这是不寻常的,但在这种情况下,NUnit 的工作方式没有任何改变。]