2012-07-02 10 views
8

Uwaga: Używam TestDriven.NET 3.0.2749 i NUnit 2.6.0.12051 dla tego projektu.Uruchom wszystkie testy w klasie testowej za pomocą TestDriven.NET i NUnit

Mam zainstalowane zarówno TestDriven.NET i NUnit i staram się uzyskać TestDriven.NET, aby uruchomić wszystkie testy w klasie testowej za pomocą menu kontekstowego prawego przycisku myszy.

Z dokumentacji TestDriven.NET:

Jeśli wybrany zostanie okno edytora kodu, test (y) do wykonania będzie określana przez położenie karetki; indywidualne testy są wykonywane przez kliknięcie prawym przyciskiem myszy w dowolnym miejscu w metodzie testowej i wybranie "Run Test (s)", jak pokazano na rysunku 2; wszystkie testy w urządzeniu testowym są wykonywane przez kliknięcie prawym klawiszem myszy w klasie (ale poza jakąkolwiek metodą) i wybranie "Run Test (s)"; wszystkie testy w przestrzeni nazw są wykonywane przez kliknięcie prawym przyciskiem myszy w obszarze nazw i wybranie "Uruchom testy".

można pomyślnie uruchomić konkretną metodę testową za pomocą prawego menu kontekstowego i runner NUnit GUI będzie skutecznie działać cały test dla danej klasy, ale chciałbym korzystać z szybkiego dostępu TestDriven.NET przewiduje te zadania, podczas gdy ja rozwijam się.

Otrzymuję błąd przestrzegać podczas I miejsce karetkę poza metody badawczej:

typ docelowy nie zawiera testy od znanego ramach testu lub „głównego” metody.

Zaktualizowany 1: Dodano przykładowy kod.

przykład kod badania:

namespace TDDN.Framework 
{ 
    public class ExampleClass 
    { 
     public ExampleClass() { } 

     public Int32 Add(Int32 x, Int32 y) 
     { 
      return x + y; 
     } 

     public Int32 Subtract(Int32 x, Int32 y) 
     { 
      return x - y; 
     } 
    } 
} 

testy aparatury:

using NUnit.Framework; 
using TDDN.Framework; 

namespace TDDN.UnitTests 
{ 
    [TestFixture] // Cursor caret placed here results in error above. 
    public class ExampleClassTests 
    { 
     [Test] // Cursor caret placed here works. 
     public void Add_SumTwoIntegers_SumReturned() 
     { 
      ExampleClass exampleClass = new ExampleClass(); 

      Assert.AreEqual(10, exampleClass.Add(5, 5)); 
     } 

     [Test] // Cursor caret placed here works also. 
     public void Subtract_SubtractTwoIntegers_DifferenceReturned() 
     { 
      ExampleClass exampleClass = new ExampleClass(); 

      Assert.AreEqual(5, exampleClass.Subtract(10, 5)); 
     } 
    } 
} 
+0

Proszę napisać swój kod, ponieważ powinien działać ... Być może coś jest nie tak z używanymi atrybutami. – seldary

Odpowiedz

16

właśnie dokładnie te problemy napotkane przy użyciu tych samych wersje TestDriven.NET i NUnit (3.0.2749 i 2,6 .0,12051).

Problem polega na tym, że TestDriven.NET 3.0 nie obsługuje NUnit 2.6, więc nie rozpozna atrybutów NUnit [Test] i [TestFixture]. W ten sposób TestDriven.NET nadal będzie uruchamiał twoje indywidualne funkcje testowe, ale jako Ad Hoc (wyświetlane na końcu komunikatu Pass/Fail/Skip podczas testowania).

Udało mi się rozwiązać problem, instalując nowszą wersję TestDriven.NET (3.3 Beta 2), która w pełni obsługuje NUnit 2.6 (Patrz: https://groups.google.com/d/msg/nunit-discuss/pTCDx2_L8jU/TlpULzE36wEJ) Teraz powinieneś być w stanie uruchomić wszystkie testy w urządzeniu na raz i zobacz (NUnit 2.6.0) wyświetlane na końcu wyjścia testowego.

+0

Potwierdzam, że proponowane rozwiązanie działa również dla mnie. Zainstalowałem TestDriven.NET 3.4.2784 Beta i byłem w stanie uruchomić wszystkie testy, gdy karetka kursora została umieszczona w linii '[TestFixture]' zgodnie z oczekiwaniami. Dziękuję, Kristian. – Noren

0

Miałem dokładnie ten sam komunikat o błędzie i podobne zachowanie w miejscach stania.

Mam już najnowszą wersję TestDriven.Net.

Mój problem polegał na tym, że moja nowa TestClass nie ma określonej kategorii i została odfiltrowana (Narzędzia -> TestDriven.Net -> Ogólne -> Kategorie -> Włącz testy w kategoriach).

Po prostu podanie prawidłowej kategorii poprawiło mój problem.

To był ten sam komunikat o błędzie, ale inny problem i rozwiązanie.

Powiązane problemy