尝试 nunit 测试企业日志记录
Trying to nunit test enterprise logging
我正在尝试对企业日志进行 nunit 测试,以证明日志等的创建。
我似乎无法让它工作 - 我收到错误消息,无法在配置源中找到用于登录的配置部分 - 我认为这与这是一个 wpf 和应用程序配置这一事实有关当我 运行 来自 class 的 nunit 测试时没有启动。有什么想法吗?
namespace Nunit
{
[TestFixture]
public class NunitTests
{
string Path = @"C:\Users\dani\bin\Debug\trace.log";
[Test]
public void TestLogCreation()
{}
}
当您 运行 NUnit 可执行文件时,它会尝试查看它自己的配置文件以查找它找不到的任何配置条目。之后它会在 machine.config 文件中搜索配置条目。它也没有找到配置条目,因此它给出了错误。
您可以通过将配置条目放入 machine.config 文件来解决此问题。
但这不是单元测试的正确方法。您必须提供假 class 来读取配置条目,而不是从配置文件中读取实际配置值。
machine.config 文件可以在下面提到的路径中找到:
32位
%windir%\Microsoft.NET\Framework\[version]\config\machine.config
64位
%windir%\Microsoft.NET\Framework64\[version]\config\machine.config
编辑
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
中,您可以 return 来自 ReadConfigEntry
方法的任意硬编码值。
更简单的方法是在 Nunit 项目中创建一个 app.config 文件并将内容复制过来 - 完美运行
我正在尝试对企业日志进行 nunit 测试,以证明日志等的创建。
我似乎无法让它工作 - 我收到错误消息,无法在配置源中找到用于登录的配置部分 - 我认为这与这是一个 wpf 和应用程序配置这一事实有关当我 运行 来自 class 的 nunit 测试时没有启动。有什么想法吗?
namespace Nunit
{
[TestFixture]
public class NunitTests
{
string Path = @"C:\Users\dani\bin\Debug\trace.log";
[Test]
public void TestLogCreation()
{}
}
当您 运行 NUnit 可执行文件时,它会尝试查看它自己的配置文件以查找它找不到的任何配置条目。之后它会在 machine.config 文件中搜索配置条目。它也没有找到配置条目,因此它给出了错误。
您可以通过将配置条目放入 machine.config 文件来解决此问题。
但这不是单元测试的正确方法。您必须提供假 class 来读取配置条目,而不是从配置文件中读取实际配置值。
machine.config 文件可以在下面提到的路径中找到:
32位
%windir%\Microsoft.NET\Framework\[version]\config\machine.config
64位
%windir%\Microsoft.NET\Framework64\[version]\config\machine.config
编辑
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
中,您可以 return 来自 ReadConfigEntry
方法的任意硬编码值。
更简单的方法是在 Nunit 项目中创建一个 app.config 文件并将内容复制过来 - 完美运行