Aqui está minha experiência com o MS Test
- Estamos executando o MS Test com cerca de 3800 Test.
- A execução dos testes demora muito, o que é doloroso quando se executam testes únicos.
- Demora cerca de 1 GB de memória para executar os testes. Não, não é devido a vazamentos de memória em nossos testes. Freqüentemente, encontramos OutOfMemoryExceptions.
- Como ele usa tantos recursos, estamos começando a executar os testes a partir de arquivos em lote. Então, para que serve toda a integração?
- É cheio de erros e instável:
- Por exemplo, se você remover o Atributo [Ignorar] de um teste, ele não o reconhecerá, porque armazenará informações sobre os testes em algum lugar. Você precisa atualizar a lista de testes, o que às vezes resolve o problema, ou reiniciar o VS.
- Ele não copia os assemblies de referência aleatoriamente para o diretório out.
- Itens de implantação (arquivos adicionais a serem usados) simplesmente não funcionam corretamente. Eles são ignorados aleatoriamente.
- Há informações ocultas (não visíveis no código de teste) nos arquivos vsmdi e testrunconfig. Se você não se importar com isso, pode não funcionar.
- Funcionalmente, pode ser comparável ao NUnit, mas é muito caro se você considerar o uso da edição VS tester.
Adição: temos mais alguns testes agora, nem posso dizer quantos. É impossível executá-los mais a partir do Visual Studio, devido a OutOfMemoryExceptions e outros problemas de instabilidade. Executamos os testes a partir de scripts. Seria fácil visualizar os resultados do teste no Visual Studio, mas quando a solução é aberta, o VS trava (todas as vezes). Portanto, precisamos pesquisar os testes com falha usando a pesquisa de texto. Não há mais vantagem de uma ferramenta integrada.
Outra atualização : estamos usando o VS 2013 agora. Muitas coisas mudaram. Eles reescreveram o executor de teste MS Test pela terceira vez desde que começamos. Isso causou muitas mudanças significativas, mas nenhuma das novas versões estava fazendo nada melhor. Estamos felizes por não termos usado os recursos sofisticados do MS Test, porque todos eles não são mais suportados. É realmente uma pena. Ainda estamos usando scripts para construir e executar todos os testes de unidade, porque é mais prático. O Visual Studio levou alguns minutos para iniciar a execução dos testes (o tempo mede após a compilação até o início do primeiro teste). Eles provavelmente consertam com uma atualização e isso pode ser um problema específico do nosso projeto. No entanto, o Resharper é muito mais rápido ao executar os mesmos testes.
Conclusão : pelo menos em combinação com o Resharper, o MS Test é útil. E espero que eles finalmente descubram como o executor de teste deve ser escrito e não façam esse tipo de alteração repentina quando atualizarmos o Visual Studio na próxima vez.