2016-01-26 1 views
0

J'ai téléchargé le projet opensource asp.net-webstack juste à cause de la curiosité de vérifier le code source. J'ai trouvé unittest en C# comme ceci:Comment l'attribut InlineData dans la pile ASP.Net fonctionne-t-il?

// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information. 

using System.Net.Http; 
using Microsoft.TestCommon; 

namespace System.Web.Http.Routing 
{ 
    public class HttpRouteTest 
    { 
     [Theory] 
     [InlineData("123 456")] 
     [InlineData("123 {456")] 
     [InlineData("123 [45]6")] 
     [InlineData("123 (4)56")] 
     [InlineData("abc+56")] 
     [InlineData("abc.56")] 
     [InlineData("abc*56")] 
     [InlineData(@"hello12.1[)]*^[email protected]}")] 
     public void GetRouteData_HandlesUrlEncoding(string id) 
     { 
      HttpRoute route = new HttpRoute("{controller}/{id}"); 
      Uri uri = new Uri("http://localhost/test/" + id + "/"); 
      IHttpRouteData routeData = route.GetRouteData("", new HttpRequestMessage(HttpMethod.Get, uri)); 
      Assert.Equal("test", routeData.Values["controller"]); 
      Assert.Equal(id, routeData.Values["id"]); 
     } 
    } 
} 

Comment exécuter ce test à partir de Visual Studio? Il n'y a aucun attribut TestMethod et TestClass. L'exécution standard à partir du menu contextuel ne fonctionne pas.

Est-il une certaine façon intelligente comment exécuter unittest agains plusieurs ensembles de données en C#?

+2

C'est juste un test xUnit. Je ne sais pas quelle "exécution standard" vous utilisez, mais si vous avez un coureur de test xUnit, ça devrait aller. –

Répondre

4

Pour autant que je peux dire InlineData est un attribut de test de xUnit.

Ce qui rend ce travail dans Visual Studio (2012 ou supérieur) est que l'adaptateur de test xUnit (à savoir le paquet NuGet xunit.runner.visualstudio) est câblé dans le projet de test lorsque la référence au paquet xUnit NuGet est ajouté.

est ici un lien avec quelques détails:

+0

Ce n'est plus le cas, def pour VS 2015 mais j'imagine aussi pour une version antérieure - vous êtes en fait [chargé de * supprimer * ce plugin dans la section de dépannage du bureau] (https://xunit.github.io /docs/getting-started-desktop.html#run-tests-visualstudio) - http://xunit.github.io/docs/getting-started-dnx.html est un meilleur lien –

+0

Ce fait référence à désinstaller l'ancien VSIX installé version. Vous devriez utiliser le paquet Nuget comme mon post référencé et votre lien ainsi que des instructions. – chief7

+0

Désolé, je viens de trouver votre message car il était trompeur - pendant 3 ans + on a explicitement installé un plugin et vous avez semblé faire allusion à une telle procédure (je reconnais que vous n'avez pas précisé cela). N'hésitez pas à annuler mon montage si vous pensez que cela fait empirer les choses :) –

0

Dans xUnit v2, paquet NuGet de xUnit comprend une référence à un NuGet (xunit.runner.visualstudio) qui fait les essais décelables par le coureur VS dans VS2012 +. Voir le xUnit docs pour un aperçu.

+0

[Légèrement la réponse liée] (http://stackoverflow.com/a/35103782/11635) [par moi] (bien qu'il se rapporte spécifiquement aux tests de * Desktop * –