当您运行NUnit可执行文件时,它会尝试查找它自己的配置文件,找不到它找不到的任何配置条目。之后,它将在machine.config文件中搜索配置条目。它也没有找到配置条目,因此它给出了错误。
您可以通过在machine.config文件中添加配置条目来解决此问题。
但它不是一个单元测试的正确方法。你必须提供假类来读取配置条目,而不是从配置文件读取实际配置值。
machine.config文件可以在低于提及的路径中找到:
32位
%windir%\Microsoft.NET\Framework\[version]\config\machine.config
64位
%windir%\Microsoft.NET\Framework64\[version]\config\machine.config
EDIT
public interface IConfigReader
{
string ReadConfigEntry(string keyName);
}
public class ConfigReader : IConfigReader
{
public string ReadConfigEntry(string keyName)
{
return System.Configuration.ConfigurationManager.AppSettings[keyName];
}
}
public class FakeConfigReader : IConfigReader
{
public string ReadConfigEntry(string keyName)
{
string configValue = string.Empty;
//provide dummy implementation instead of reading actual .config file
return configValue;
}
}
现在创建IConfigReader
接口的实例。在实际代码中使用ConfigReader
实现读取配置值,而单元测试使用FakeConfigReader
实现。在FakeConfigReader
中,您可以从ReadConfigEntry
方法返回任意硬编码值。
是在app.config在单元测试项目中配置是否正确?是否具有记录输出所需的所有配置? –