2016-05-12 6 views
1

Ich benutze die datengetriebene Testfunktion im MS-Testframework. [DataSource] -Attribut spezifiziert Tabelle. C# -Methode ist als [TestMethod] markiert. Es funktioniert, aber manchmal muss ich die Ausführung stoppen. Zum Beispiel hat Tabelle 100 Zeilen. Wie zu explizit (vorzeitig) Exit-Test-Methode (den Rest der DDT-Aufrufe stoppen) nach einer Bedingung, sagen während des Aufrufs dieser Methode für 50-ten Reihe?Wie Sie die datengesteuerte Testmethode in MSTest explizit beenden

[DataSource("System.Data.SQLite", @"Data Source=D:\Test.db;", "TestTableName", 
    DataAccessMethod.Sequential)] 
    [TestMethod] 
    public void DataTest() 
    { 
     string userId = Convert.ToString(TestContext.DataRow["userid"]); 
     string telephone = Convert.ToString(TestContext.DataRow["telephone"]); 
     string email = Convert.ToString(TestContext.DataRow["email"]); 

     // ..... 

     functionThatPerformsAssert(userId, telephone, email); 
     // ..... 

    } 
+0

Können Sie zeigen den Code Prüfmethode Bitte? –

+0

Sorry - kann Produktionscode nicht hinzufügen. Ein Beispiel wurde hinzugefügt. aber unwahrscheinlich Code wird Informationen hinzufügen. – Kaponir

+0

Sie wollen also (wie im Abbruch) die Ausführung des Tests beenden? Was wollen Sie (und MS-Test), dass das Ergebnis des Tests "bestanden oder nicht bestanden" sein sollte? Wenn Sie nur möchten, dass es beendet wird und fehlschlägt, werfen Sie eine Ausnahme auf! – Jocke

Antwort

1

Ich löste dieses Assert.Inconclusive von functionThatPerformsAssert() aufgerufen wird, wo _skipTest bestimmt, ob aktuelle Zeile in datengesteuerten Test zu überspringen und nächste Zeile zu beginnen:

if (_skipTest) 
      Assert.Inconclusive("Test Skipped"); 
+0

aber wenn ich dies nach der ersten Iteration versuche, bleibt nur mein Testfall ... ich benutze dies in der Testinitialisierung. – shrot