2012-10-28 14 views
5

Ich habe 3 Prüfverfahren in meiner Unit-Test-Klasse, aber Visual Studio läuft nur den zweiten Test, die anderen ignorierenVisual Studio nicht alle Unit-Tests in einer Testklasse laufen

Dies sind die drei Testmethoden:

[TestClass()] 
public class InsertionSortTest 
{ 

    [TestMethod()] 
    public void sortTest() 
    { 
     InsertionSort target = new InsertionSort(); // TODO: Initialize to an appropriate value 
     int[] n = new int[] { 2, 1, 4 }; 
     int[] nExpected = new int[] { 1, 2, 4 }; 
     target.sort(ref n); 
     CollectionAssert.AreEqual(nExpected, n); 

    } 

    [TestMethod()] 
    public void sortTest2() 
    { 
     InsertionSort target = new InsertionSort(); // TODO: Initialize to an appropriate value 
     int[] n = new int[] { 1, 2 }; 
     int[] nExpected = new int[] { 1, 2 }; 
     target.sort(ref n); 
     CollectionAssert.AreEqual(nExpected, n); 

    } 

    [TestMethod()] 
    public void sortTest3() 
    { 
     InsertionSort target = new InsertionSort(); // TODO: Initialize to an appropriate value 
     int[] n = new int[] { 1, 2 }; 
     int[] nExpected = new int[] { 1, 2 }; 
     target.sort(ref n); 
     CollectionAssert.AreEqual(nExpected, n); 

    } 
} 

Also, wenn ich den Test ausführen nur sortTest2 ausgeführt wird? Ich erwarte 3 Ergebnisse davon. Ich bekomme Ergebnisse 1/1 bestanden. Testname: sortTest2.

Was ist mit den anderen zwei Tests passiert, die ich gemacht habe?

+1

Klingt so, als ob es nur eine alte Kompilation oder etwas ähnliches läuft ... Versuchen Sie, den Cache zu säubern und die Tests erneut auszuführen – gillyb

+1

Als Nebenbemerkung folgen Sie bitte den .NET-Namenskonventionen - und nennen Sie Ihre Testmethoden, damit klar ist, welches Szenario sie haben. neu sortieren. (Sie brauchen wahrscheinlich auch nicht 'ref', entweder ...) –

Antwort

4

gillyb, yeah, du warst richtig, denke ich. Neustart von Visual Studio behob das Problem.

2

Ich habe festgestellt, dass Tests nach dem Testlauf als "nicht ausgeführt" angezeigt werden. Es stellte sich heraus, dass diese Tests nie abgeschlossen wurden, da eine StackOverflowException mitten auf dem Weg war.

1

Etwas, das mich mehr als einmal damit gebissen hat, ist, dass das Testprojekt nicht überprüft wurde, um in der Lösungskonfiguration gebaut zu werden.

Verwandte Themen