Como o NUnit for C # se compara ao recurso Unit Test integrado ao Visual Studio

12

Preciso trabalhar em equipe para desenvolver um aplicativo de desktop de escala média desenvolvido usando o C # .NET. Antes disso, eu não apliquei Teste de Unidade e Desenvolvimento Orientado a Teste. Estou ciente de que existem muitas ferramentas e estrutura para aplicativos C # de teste de unidade. A partir de agora, conheço o Nunit e o recurso de teste de unidade integrado ao Visual Studio.

Eu gostaria de saber, como os dois se comparam?

Shamim Hafiz
fonte

Respostas:

14

Há alguma sobreposição entre os dois, com certeza. NUnit é o antecessor e, como resultado, mais maduro. A estrutura de teste de unidade C # é mais jovem, mas integrada ao Visual Studio.

Eu vim do mundo Java, onde o JUnit é o rei (existem outros, mas nenhum tão popular), e o NUnit 2.5.x é uma combinação muito boa com a maneira como o JUnit 4 funciona. De fato, funciona muito melhor que o equivalente em Java.

No que diz respeito à definição de teste, sou a favor do NUnit. Claro que o MS Test possui atributos semelhantes (mas diferentes) que você aplica às suas aulas, mas acredito que faltam alguns recursos que podem poupar algum trabalho em alguns tipos de teste. Você pode querer conferir uma discussão semelhante no StackOverflow .

Gosto do novo modelo de asserção incorporado ao NUnit (ele está usando o estilo Hamcrest ), porque eles são fáceis de ler e facilmente extensíveis.

  • O NUnit terá melhor suporte de terceiros, o MS Test terá melhor integração (pronto para uso).
  • O NUnit terá melhor flexibilidade e extensibilidade, o MS Test sofrerá nessa área.
  • Ambos executam testes de unidade e verificam seus resultados, ambos funcionarão para TDD.
Berin Loritsch
fonte
3

A única diferença real que notei quando precisei criar um script de compilação para rodar em um servidor MSBUILD dedicado, formando o TFS, configurando o nUnit e obtendo os resultados do teste do nUnit foi uma verdadeira dor de cabeça, configurá-lo e obter os resultados para o MSTest foi muito fácil.

Também houve um problema com o Resharper em que os testes do MSTest não podiam ser executados a partir do executor de testes. Nas versões mais recentes, isso é corrigido; portanto, se você tiver uma versão antiga do Resharper, ainda poderá ser um problema.

Este post de Roy Oshereve ainda é uma boa visão geral.

ps: Excluí minha outra resposta, não foi de todo útil, minhas desculpas por essa.

KeesDijk
fonte