Ich habe eine Testmethode, die zwei XML-Dateien als Eingabe akzeptiert und vergleicht. Ich verwende Microsoft.VisualStudio.TestTools.UnitTesting
Framework auf .NET 4.5
. Ich möchte die Testmethode so ändern, dass sie mehrere XML-Dateien (zwei gleichzeitig in Paaren) benötigt, den Test ausführt und die Ergebnisse getrennt angibt.Datengetriebenes Testen in C# mit Arrays
Ich habe den folgenden Code versucht, aber es gibt nur einen einzigen Ausgang und stoppt, wenn ein Paar Eingabedateien den Test nicht besteht.
string[] source = {file1, file2, file3, file4....};
string[] target = {fileA, fileB, fileC, fileD....};
[Test Method]
public void TestCase01()
{
TestLogic testObj = new TestLogic(); //class containing the comparison method
for (int i = 0; i < source.Length; i++)
{
Assert.IsTrue (testObj.VerifyFiles(source[i], target[i]));
}
}
Nach einigen Recherchen ich, dass DataSource
Attribut verwendet werden, herausgefunden werden. Aber ich weiß nicht, wie man zwei Arrays (oder ein einzelnes zweidimensionales Array) an das DataSource
Attribut übergibt. Ich würde lieber Microsoft.VisualStudio.TestTools.UnitTesting
zum Testen und andere 3rd Party Frameworks wie NUnit
nur als letztes Mittel verwenden.
Bearbeiten: Ich weiß nicht die Anzahl der Eingabedateien. Ich habe 4 Dateien nur als Beispiel benutzt. Bevor Sie die Dateien an die TestMethod übergeben, packe ich sie mit ihren IDs. Also lese ich zuerst zwei Dateien aus zwei verschiedenen Ordnern, kupple sie basierend auf ihrer ID und übergebe dann die gepaarten Dateien zum Testen an den Testfall. Ich speichere jetzt die gepaarten Dateinamen (Quelle und Ziel) in einem Array oder einer Liste und übergebe sie dann an den Testfall. Offensichtlich funktioniert diese Methode nicht und ich habe das oben erwähnte Problem.
Können Sie bitte ein wenig ausarbeiten? Vielleicht gib ein Demo-Code dafür. – Vijay