Comment contourner les petits problèmes de xUnit quand il est utilisé avec MTP ?
Depuis 3 semaines, si vous utilisez xUnit avec Microsot Testing Platform (MTP), vous rencontrez certainement quelques difficultés. Ces problèmes sont liés à l'arrivée de MTP 2. Actuellement, xUnit ne prend pas en charge cette version. Bien évidemment une issue a été créée sur GitHub. Elle peut être suivie ici : XUnit.V3 compatible version for MTP 2.0.0 · Issue #3416 · xunit/xunit
En attendant la résolution de celle-ci, il y a moyen de faire fonctionner xUnit avec MTP 1.
Le seul véritable problème consiste à comprendre comment MTP s'est retrouvé dans vos projets. En l'état, un projet de test ne référence pas directement MTP. Se sont les frameworks, et extensions qui références celui-ci. Comme toujours avec nuget, il suffit de consulter le détail d'un package pour en avoir le cœur net.
Par exemple, Microsoft.Testing.Extensions.CodeCoverage 18.1, dépends de MTP 2.0.0 à minima.
Si l'on regarde les versions précédentes de Microsoft.Testing.Extensions.CodeCoverage, on constate que la version 17.14.2 est la dernière version dépendant de MTP 1.
Si vous utilisez Microsoft.Testing.Extensions.CodeCoverage, il suffit donc d'installer la version 17.14.2, pour avoir une version compatible avec xUnit. Si vous utilisez d'autres extensions de MTP, il vous faudra vérifier chacune d'entre elles afin d'identifier les versions dépendants de MTP 1.
Petite astuce : avec Visual Studio, il est possible de visualiser rapidement les dépendances indirectes à des packages nuget en déroulant le nœud packages. Désolé, il n'y a pas d'équivaillent dans Rider.