2012-11-12 6 views
7

Próbuję skonfigurować prosty projekt NUnit w Visual Studio 2012 Express przy użyciu menedżera NuGet. Od projektu-> Zarządzaj Nuget Pakiety zainstalowałem NUnit (ramowej) i chciał dodać NUnit.Runner ale podczas instalacji Otrzymuję:NUnit.Runners za pośrednictwem Nuget na Visual Studio 2012 express nie działa

'NUnit.Runners 2.6.2' already installed. 

Ok, ale kiedy idę do Narzędzia-> Biblioteka Package Manager- > Zarządzaj pakietami NUGet dla rozwiązania zarówno NUnit (framework), jak i NUnit.Runners są wyświetlane jako zainstalowane.

Mogę używać frameworka NUnit w kodzie, ale kiedy próbuję uruchomić testy stary "Test Explorer" zostaje i nic nie pokazuje. Testy nie są wywoływane ani.

Czy brakuje mi czegoś w konfiguracji VS2012 lub NUnit?

Odpowiedz

6

Jak się dowiedziałem program Visual Studio Express nie obsługuje rozszerzeń projektu (zabronione i wyłączone przez firmę Microsoft). Wygląda więc na to, że nie ma możliwości użycia NUnit bez obejścia. Do tej pory zainstalowałem pełną wersję i tam NUnit runner działa zgodnie z oczekiwaniami.

4

Dlaczego nie używać wbudowanego testrunnera w VS2012 i dodać testadapter nunit za pośrednictwem menedżera rozszerzeń?

+0

Tak, to jest obejście Myślałam o. Dzięki. – Michal

5

Można również użyć sombody podejście wspomniano w komentarzach tego blog post:

  1. Dodaj odwołanie do nunit-console-runner w swoim zespole testowym.

  2. W swoim zespole testowym uczynić klasę z poniższej jednej liniowej (patrz niżej)

  3. Otwórz właściwości zgromadzenia waszego testowego. Na przykład kliknij prawym przyciskiem myszy zespół i wybierz Właściwości.

    1. Na karcie Aplikacja wybierz Typ wydruku: Aplikacja systemu Windows; i obiekt startowy: NUNitConolseRunner (powyższy plik).

    2. Na karcie Debugowanie wpisz nazwę pliku .csproj w Argumenty wiersza poleceń; i przejdź do folderu pliku .csproj w katalogu roboczym.

  4. Zapisz wszystko, ustaw punkt przerwania i wykonaj używając F5 lub zielonego przycisku ze strzałką.

Kod:

using System; 
namespace MotorExampleTests 
{  
    // Written by blokeley 
    class NUnitConsoleRunner 
    { 

    [STAThread] 
    static void Main(string[] args) 
    { 
     NUnit.ConsoleRunner.Runner.Main(args); 
    } 
    } 
} 
+0

Próbowałem tego podejścia, ale nie mogłem go uruchomić. Więc wymyśliłem sposób, żeby to zadziałało. Zamiast tego utworzyłem oddzielny projekt konsoli, a następnie uruchomiłem testy z metody Main, uruchamiając następujący wiersz: 'NUnit.ConsoleRunner.Runner.Main (nowy ciąg [] {@" C: \ myprograms \ mysolution \ MyProject. Przetestuj \ bin \ Debug \ MyProject.Test.dll "});' – FernandoZ

+0

Również to pozwala mi zachować moje testy jako dll zamiast exe, jak sugeruje powyższy post. – FernandoZ

+0

Zamiast zakodowanych ścieżek można uzyskać ścieżkę za pośrednictwem 'System.IO.Path.GetDirectoryName (System.Reflection.Assembly.GetExecutingAssembly() .Nazwa(). KodBase)' – tobsen