Pergunta

Tenho dois projetos de teste de unidade na minha solução VS 2010.Cada projeto possui um diretório Data com os dados de entrada necessários para os testes unitários.

Anotei as classes de teste que precisam dos dados com

[DeploymentItem("Data")]

Quando executo testes individualmente, tudo funciona bem.No entanto, quando executo (ou depuro) todos os testes na solução, descubro que apenas um dos dois diretórios Data é copiado para TestResults\MyTestDir-YYYY-MM-DD HH_mm_SS\Out, fazendo com que os testes de unidade que dependem do outro diretório de dados falhem.

Curiosamente, se eu usar a janela Resultados do teste para executar novamente testes verificados (como com falha), os testes ainda falharão (eles não reconhecem que os arquivos do diretório de dados correto estão faltando).Se eu navegar diretamente para um teste com falha e selecionar Executar testes no contexto atual, a execução do teste obterá o diretório de dados correto e o teste será bem-sucedido.

Minha pergunta:Como posso causar DeploymentItems de dois projetos de teste separados, todos a serem copiados para o Out diretório onde os testes são executados?

Para referência, revisei essas questões sem observar uma solução

Problemas com o atributo DeploymentItem

Os itens de implantação do MSTest só funcionam quando presentes no arquivo de configurações de teste do projeto?

Foi útil?

Solução

Descobri que dar a cada diretório "Data" um nome exclusivo (por exemplo"TestProjectAData") resolveu o problema.Parece haver algum tipo de bug quando vários diretórios em caminhos diferentes têm o mesmo caminho relativo para diferentes projetos de teste (ou seja,se todo projeto de teste tiver um subdiretório chamado "Data").

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top