Au moment de la rédaction de cette réponse, la dernière version de NUnit est la v3.5 et celle de xUnit.net la v2.1.
Les deux frameworks sont géniaux, et ils prennent tous deux en charge l'exécution de tests en parallèle (d'une manière différente cependant). NUnit existe depuis 2002, il est largement utilisé, bien documenté et dispose d'une large communauté, alors que xUnit.net est plus moderne, plus conforme à la méthode TDD, plus extensible, et également plus tendance dans le développement .NET Core. Il est également bien documenté.
En plus de cela, la principale différence que j'ai remarquée est la manière dont xUnit.net exécute les méthodes de test. Ainsi, dans NUnit Nous avons une classe de test et un ensemble de méthodes de test dans celle-ci. NUnit crée une nouvelle instance de la classe de test et exécute ensuite toutes les méthodes de test à partir de la même instance. Alors que xUnit.net crée une nouvelle instance de la classe de test pour chacune des méthodes de test. . Par conséquent, on ne peut pas utiliser de champs ou de propriétés pour partager des données entre les méthodes de test, ce qui est une mauvaise pratique, car nos méthodes de test seraient dépendantes les unes des autres, ce qui n'est pas acceptable en TDD. Donc, si vous utilisez xunit.net, vous pouvez être sûr que vos méthodes de test sont complètement isolées.
Cependant, si vous êtes prêt à partager certaines données entre vos méthodes de test, xUnit vous permettra de le faire. Par conséquent, par défaut, toutes les méthodes de test sont complètement isolées, mais vous pouvez briser cette isolation dans des cas spécifiques de manière intentionnelle. Cette attitude me plaît, c'est pourquoi je la préfère.