Pergunta
Alguém tem alguma experiência em fazer com que o MSTest copie hibernate.cfg.xml corretamente para o diretório de saída?Todos os meus MSTests falham com um erro não é possível encontrar o hibernate.cfg.xml (configurei-o para Copiar sempre), mas meus testes MBUnit foram aprovados.
Solução
Você pode tentar adicionar o DeploymentItemAttribute a um de seus testes ou editar seu arquivo .testrunconfig e adicionar o arquivo à lista de implantação.
Outras dicas
Edite localtestrun.testrunconfig (na pasta de itens da solução).Selecione a opção de implementação e adicione o arquivo hibernate.cfg.xml à lista de arquivos adicionais para implementação.O arquivo deve então ser copiado para o diretório de saída onde o teste é executado.
Encontrei a mesma coisa há algumas semanas - na verdade é um bug com MSTest -- Acredito que isso foi corrigido com o recente Lançamento do Service Pack (mesmo que ainda diga "Ativo").Caso contrário, tudo o que tive que fazer foi referenciar meu hibernate.cfg.xml diretamente (desleixado, mas funciona para testes - isso está referenciando o arquivo hibernate.cfg.xml em meu projeto de testes da pasta "TestResults"):
try
{
sessionFactory = new Configuration()
.Configure()
.BuildSessionFactory();
}
// Assume we are in "MSTest mode"
catch (Exception)
{
sessionFactory = new Configuration()
.Configure(@"..\..\..\Program.Tests\" + @"\hibernate.cfg.xml")
.BuildSessionFactory();
}
uma solução alternativa em vez de uma resposta:Suporte NHibernate configuração programática.para que você possa escrever seu próprio arquivo de propriedades/configuração nativa e analisá-lo em configurações de hibernação na inicialização.
Gosto de marcar meus arquivos de configuração do NHibernate como recursos incorporados e usar a sobrecarga Configuration.Configure() que lê os arquivos de configuração dos recursos do Assembly.