Laden...

Testmethode mehrere Male aufrufen mit mehreren Daten(Test)Quellen?

Erstellt von Coffeebean vor 12 Jahren Letzter Beitrag vor 12 Jahren 1.803 Views
Coffeebean Themenstarter:in
2.207 Beiträge seit 2011
vor 12 Jahren
Testmethode mehrere Male aufrufen mit mehreren Daten(Test)Quellen?

Hallo zusammen,

ganz allgemein: Gibt es eine Mglichkeit eine TestMethode mehrere Male aufzurufen? Und das von Hand. DataDriven-Unit-Tests lassen nur eine Datenquelle zu, ich hab aber mehrere XML-Files mit Testcasses und Asserts...

Viele liebe Grüsse

Coffeebean

EDIT: Titel editiert

6.911 Beiträge seit 2009
vor 12 Jahren

Hallo Coffeebean,

bei NUnit gibts das Repeat-Attribut. Da du aber MsTest verwendet (?) gibts dort keine Entsprechung dafür (wenn ich mich nicht irre). Möglich ist jedoch ein for-Schleife zu verwenden.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

Coffeebean Themenstarter:in
2.207 Beiträge seit 2011
vor 12 Jahren

Da du aber MsTest verwendet (?)

Ja, verwende ich.

Am Ende sollen alle Tests, basierend auf den XML-Testcases, unten in den TestResults vom VS angezeigt werden.

Wenn ich nun eine TestMethod mache, in der mir alle Daten zusammensuche und dann mittels einer For-Schleife einen weiteren Unit-Test aufrufe (und die entsprechenden parameter übergebe) bekomme ich nicht die Darstellung der Testresults hin.

Ist NUnit in dem Fall eine mögliche Lösung?

Gruss

Coffeebean

EDIT:

Die Beschreibung sagt:

"RepeatAttribute is used on a test case to specify that it should be executed multiple times. If any repetition fails, the remaining ones are not run and a failure is reported. "

Ich möchte jedoch, dass bei einem fehlgeschlagenen Assert die ausstehenden Tests weiter ausgeführt werden.

6.911 Beiträge seit 2009
vor 12 Jahren

Hallo Coffeebean,

das Repeat-Attribut deck sich direkt mit dem Titel des Beitrag, daher sind korrekte Titel auch so wichtig 😉

Bei NUnit gibts hierfür das TestCaseSource-Attribut und dort (bzw. in einer Methode auf die "verwiesen" wird) kannst du das XML lesen und die Test-Methode füttern. Das ist genau was du brauchst.

Es ist afaik auch möglich NUnit unter MsTest zu verwenden, ob sich das jedoch nur auf die Asserts beschränkt weiß ich nciht genau, vermute aber fast, da die anderen Attribute den NUnit-Runner benötigen.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

Coffeebean Themenstarter:in
2.207 Beiträge seit 2011
vor 12 Jahren

das Repeat-Attribut deck sich direkt mit dem Titel des Beitrag, daher sind korrekte Titel auch so wichtig 😉

Da hast du recht.

Vielen Dank, ich schaue mir das mal an.

Für alle, die das gleiche Problem haben:

NUnit - TestCaseSource

Danke.

Viele liebe Grüsse

Coffeebean

5.742 Beiträge seit 2007
vor 12 Jahren

Für alle, die das gleiche Problem haben

Auch praktisch ist in diesem Zusammenhang das Theory Attribut: Man legt die möglichen Werte via Datapoints einmalig fest und NUnit verwendet alle einmal (und permutiert sogar bei mehreren Parametern).

916 Beiträge seit 2008
vor 12 Jahren

Hallo zusammen,
dazu gibt es auch das Values Attribut in Verbindung mit dem Sequential Attribut und dem Combinatorial Attribut.

Again what learned...

6.911 Beiträge seit 2009
vor 12 Jahren

Hallo,

das Theorie- und Values-Attribute ist sehr praktisch, kann aber nicht verwendet werden, wenn es um eine (externe) Datenquelle geht, die wie hier als XML-Datei vorliegt. Hier funktioniert nur die TestCaseSource, bei der zur Laufzeit die Werte gelesen werden können.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"