Wenn Sie NUnit ausführbare Datei ausführen, versucht es, für alle Konfigurationseinträge in seine eigene Konfigurationsdatei zu suchen, die es nicht finden können. Danach sucht es nach Konfigurationseinträgen in der Datei machine.config. Dort findet es auch nicht die Konfigurationseinträge, daher gibt es den Fehler.
Sie können dies beheben, indem Sie die Konfigurationseinträge in die Datei machine.config setzen.
Aber es wäre nicht ein richtiger Weg zum Komponententest. Sie müssen eine falsche Klasse zum Lesen von Konfigurationseinträgen bereitstellen, anstatt die tatsächlichen Konfigurationswerte aus der Konfigurationsdatei zu lesen.
machine.config Datei kann bei unten genannten Pfaden:
32 bit
%windir%\Microsoft.NET\Framework\[version]\config\machine.config
64 bit
%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;
}
}
Jetzt Instanzen von IConfigReader
Schnittstelle erstellen. Im tatsächlichen Code verwenden Sie ConfigReader
Implementierung, um Konfigurationswerte zu lesen und während Unit-Test FakeConfigReader
Implementierung verwenden. In FakeConfigReader
können Sie jeden beliebigen hartcodierten Wert von ReadConfigEntry
Methode zurückgeben.
Ist das App.config in Ihrem Projekt Unit-Tests richtig konfiguriert? Verfügt es über die gesamte Konfiguration, um die Ausgabe zu protokollieren? –