app.config para o teste de unidade de montagem: como fazer as appsettings 'arquivo' trabalho atributo?
-
07-07-2019 - |
Pergunta
Eu preciso ler uma definição da seção appsettings (definido no app.config) em um teste de unidade. Estamos usando mstest neste projeto.
Say este é o app.config:
<configuration>
<appSettings>
<add key="MyAppSetting" value="MyAppSettingValue"/>
</appSettings>
</configuration>
Aqui está o teste correspondente, que passa nesta configuração:
[TestClass]
public class ConfigurationTests
{
[TestMethod]
public void can_read_appsettings()
{
string value = ConfigurationManager.AppSettings.Get("MyAppSetting");
Assert.AreEqual("MyAppSettingValue", value);
}
}
Agora, quando tento mover a seção appSettings em um arquivo custom.config, este teste falhar.
Isto é o que minha aparência arquivo app como agora:
<configuration>
<appSettings file='Custom.config' />
</configuration>
Eu adicionei o arquivo Custom.config ao meu projeto (com ação de compilação 'copiar sempre'):
<appSettings>
<add key="MyAppSetting" value="MyAppSettingValue"/>
</appSettings>
Ao fazer o mesmo em um aplicativo de console, isso funciona. Existe uma maneira de fazer este trabalho em um teste de unidade de montagem também?
Solução
Eu encontrei a resposta. Usando mstest, eu precisava para marcar o arquivo 'Custom.config' como um item de implantação no arquivo 'localtestrun.testrunconfig'.