Frage

Ich habe gerade herausgefunden, dass ich war immer die doppelte Anzahl von Tests durchgeführt, dass ich immer habe soll. Entdeckt es, wenn ein Test brach, und ich habe zwei identische Testfehler. Gleicher Test, alles gleich. Sie haben mich ganz verwirrt, aber schaffte es zu verengen bis zu einem bestimmten Test-Klasse, die eine Teilklasse war.

Der Grund ist es eine partielle Klasse war, dass ich hatte eine Testklasse in zwei Teile gespalten, nur um es ein bisschen mehr sauber. Die Klasse im Test hatte eine bestimmte Methode, die eine lange Reihe von Tests erforderlich und ich dachte, es sauberer diejenigen, die in einer separaten Datei zu haben wäre. Aber da war es eine oder zwei Hilfsmethoden verwendeten ich dachte, ich könnte nur die Klasse Teil machen, so dass beide Dateien immer noch Zugang zu diesen Methoden hatten.

Der Test-Framework ist NUnit und die Tests wurden durchgeführt durch TestDriven.Net verwenden. die Tests liefen beide aus dem Inneren eines einzigen Testverfahren (berichtet zwei Tests anstelle eines bestanden), auf die Klasse (bekam die doppelte Anzahl von Tests bestanden) und auf dem gesamten Testprojekt.

Verwaltete um das Problem zu beheben, indem die Klassen nicht parteiisch zu machen und nur die winzigen Helfer Methoden duplizieren (vielleicht später derjenigediejenigedasjenige in einer separaten Hilfsklasse oder etwas bewegen).

Nun ... warum auf der Erde ist das passiert? Ich dachte, partielle Klassen in eine einzige Klasse kompiliert wurden? Ist das ein Problem mit partiellen Klassen im Allgemeinen, NUnit, Test-Driven.net oder etwas ganz anderes?

War es hilfreich?

Lösung

Sie stellen wahrscheinlich das [TestFixture] Attribut in beiden Dateien der Teilklasse. Dies führt dazu, TestFixture bis zweimal in der IL Klassendefinition emittiert werden und NUnit den gleichen Test-Code zweimal ausführen. Sie sollten nur [TestFixture] in eine der Dateien für Ihre Teil-Klasse hinzufügen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top