2017-09-13 3 views
0

J'utilise xUnit avec Visual Studio Test Explorer et lorsqu'une erreur se produit dans Assert.Equal(), j'obtiens une version tronquée de Actual et Expected.Affichage xUnit tronqué Prévu et réel dans l'Explorateur de test

Par exemple,

Xunit.Sdk.EqualException 
Assert.Equal() Failure 
Expected: List<Result> 
[Result { 
Status = StatusEnumValue1, 
Message = "The request or response type contains a special ty"..., 
Path = "1234" }] 
Actual: WhereListIterator<Result> 
[Result { 
Status = StatusEnumValue1, 
Message = "The request or response type contains a special ty"..., 
Path = "1234" }] 

Ce test échoue parce que les Message s sont différents, mais étant donné que les Message s sont tronqués, je ne vois pas la partie où ils sont réellement différents du test Explorer. Même quand je le copie, il est encore tronqué.

Est-ce un défaut connu de xUnit? Je peux continuer à déboguer le test ou utiliser WriteLine pour comparer les Message s mais je suis surpris que le framework xUnit n'ait pas un moyen de permettre une réponse complète. J'ai également essayé l'explorateur de test Resharper, et cela ne résout pas le problème.

Répondre

0

Il se trouve que c'est un problème xUnit.

ovation22 points possèdent en dessous de l'emplacement exact du code qui contrôle cette limite stricte sur le nombre de caractères.

J'ai contourné ce problème en utilisant la bibliothèque FluentAssertions à la place. L'erreur de xUnit utilisée avec FluentAssertions ne tronque aucun message d'erreur.

0

Cela semble être une limitation de Visual Studio. Cela semble être résolu avec Visual Studio 2017.3.

https://developercommunity.visualstudio.com/content/problem/30703/test-explorer-result-text-truncated.html

+0

Je suis déjà sur 2017.3. Même lorsque je redimensionne la fenêtre, le message est tronqué, toujours au même endroit (au milieu). Ils ont peut-être corrigé quelque chose de similaire pour MSTest, peut-être? Je vais essayer ceci sur une console pour voir si c'est un problème de xUnit. – KangarooWest

+0

Comme prévu, c'est la même chose dans la console, donc c'est un problème xUnit. Au début, j'ai pensé à corriger cela en ajoutant un message manuellement, mais hélas, ils ne le supportent pas non plus: | https://stackoverflow.com/questions/42203169/how-to-implement-xunit-descriptive-assert-message Je peux utiliser une solution de contournement en faisant Assert.True, qui a une surcharge de message, mais c'est quelque chose Je déteste vraiment faire: ( – KangarooWest

+1

Regarde que vous avez raison, je vais voir si je peux soumettre une demande de traction pour permettre que ce soit configurable https://github.com/xunit/xunit/blob/d2935cc4bd9d77df49239f2e6a7174dbe09d1e47/src/ xunit.runner.visualstudio/Sinks/VsDiscoverySink.cs – ovation22