При запуске 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
РЕДАКТИРОВАТЬ
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 в проекте модульных тестов настроен правильно? Нужна ли вся конфигурация, необходимая для регистрации вывода? –