DeploymentItem se comportando de maneira diferente no VS2010 e no VS2012

9

Eu tenho uma solução VS2010 que estou tentando atualizar para o VS2012.

Estou tendo um problema com os testes de unidade do MSTest no VS2012. Todos os testes incluem atributos DeploymentItem na classe de teste.

[TestClass]
[DeploymentItem(@"SubDir\SubDir2\models", "models")]
public class UnitTests
{ ... }

Em 2010, está copiando corretamente os arquivos dependentes do diretório SolutionDirectory\SubDir\SubDir2\models .

Em 2012, ele está tentando copiar do diretório em que os testes foram implantados SolutionDirectory\UnitTests\bin\debug\SubDir\SubDir2\models

Estou procurando uma maneira de restaurar o antigo comportamento.

    
por Jonathan Taylor 26.08.2012 в 19:09
fonte

2 respostas

4

Se você criar um arquivo de configurações de teste em sua solução, ative a implantação nele (por padrão, a implantação está desativada nas configurações de teste) e selecione-o no test explorer (Testar -> Configurações de teste - > ), então deve funcionar sem alterar o código também.

    
por Aseem Bansal 19.02.2013 / 20:38
fonte
1

Após a instalação do vs2012 e do .net 4.5, parece que o deploymentitemattribute está fora de sincronia com o local em que ele move os arquivos e onde o executável procura os arquivos durante a execução dos testes.

Solução alternativa:

  1. Deixe o caminho deploymentitemattribute como está
  2. Veja onde o arquivo está sendo movido para
  3. Altere o código de teste para procurar naquele local

Antes dessa atualização, o mstest era inteligente o suficiente para encontrar itens de implementação, mesmo se eles fossem movidos para um subdiretório no diretório bin. Parece que isso não é mais o caso.

Portanto, antes da atualização, uma linha do seu código de teste unitário pode ter esta aparência ...

FileInfo fi = new FileInfo("temp.txt");

Após a atualização, uma linha do seu código de teste unitário pode ter esta aparência ...

FileInfo fi = new FileInfo("\SubDir\SubDir2\models\temp.txt");
    
por sjdirect 28.08.2012 / 19:18
fonte