Sei que esse é um tópico antigo, mas pensei em postar um voto no xUnit.NET . Enquanto a maioria das outras estruturas de teste mencionadas é praticamente a mesma, o xUnit.NET adotou uma abordagem bastante única, moderna e flexível ao teste de unidade. Ele muda a terminologia, para que você não defina TestFixtures e Tests ... você especifica Facts and Theories sobre seu código, o que se integra melhor ao conceito do que é um teste na perspectiva de TDD / BDD.
O xUnit.NET também é EXTREMAMENTE extensível. Suas classes de atributo FactAttribute e TraitAttribute não são seladas e fornecem métodos básicos substituíveis que oferecem muito controle sobre como os métodos que esses atributos decoram devem ser executados. Embora o xUnit.NET em sua forma padrão permita escrever classes de teste semelhantes aos equipamentos de teste NUnit com seus métodos de teste, você não está confinado a essa forma de teste de unidade. Você é livre para estender a estrutura para oferecer suporte às especificações de preocupação / contexto / observação no estilo BDD, conforme mostrado aqui .
O xUnit.NET também suporta testes de estilo de ajuste diretamente prontos para uso com seu atributo Teoria e atributos de dados correspondentes. Os dados de entrada de ajuste podem ser carregados do Excel, banco de dados ou até mesmo uma fonte de dados personalizada, como um documento do Word (estendendo o atributo de dados base.) Isso permite que você capitalize em uma única plataforma de teste para testes de unidade e testes de integração, que pode ser enorme na redução das dependências do produto e do treinamento necessário.
Outras abordagens para teste também podem ser implementadas com o xUnit.NET ... as possibilidades são bastante ilimitadas. Combinados com outra estrutura de zombaria muito avançada, o Moq , os dois criam uma plataforma muito flexível, extensível e poderosa para implementar testes automatizados.