2012-06-13 2 views
6

Gibt es eine Möglichkeit, die ausgewählten Testkategorien beim Ausführen eines Tests programmatisch zu erhalten? etwas in den Zeilen von TestContext.Properties ["_ SELECTCATEGORIES"]nUnit-Kategorien programmatisch abrufen

im Grunde habe ich Testfälle, die die Testdaten aus einem db laden und wie ich eine Menge Tests habe das Projekt dauert eine lange Zeit Laden. Im Versuch, einen Weg zu finden, um die testCaseSources mit nichts zurückkehrt, wenn die Kategorie nicht

ausgewählt
+0

was meinst du mit Testkategorien? –

+0

Ich meine die Kategorien in der Nunit GUI oder Konsole in den enthaltenen Kategorien für die Ausführung ausgewählt – z0c

Antwort

2

AKTUALISIERT

Es nicht zur Identifizierung oder Laden ausgewählten Kategorien jede einfache Methode zu sein scheint in einer NUnit Testanordnung innerhalb die NUnit-Framework selbst ..

mit Reflexion, könnten Sie vielleicht die Eigenschaft scannen Categories in Klassen dekoriert mit TestAttribute oder TestFixtureAttribute. Wenn Sie diese Kategorien mit den zu ladenden Dateien vergleichen, können Sie möglicherweise herausfiltern, welche Tests vor dem Laden geladen werden.

Und dann gibt es die TestContext.Test.Properties Schlüssel _CATEGORIES (erhältlich in NUnit 2.5.7 und höher):

[Test] 
[Category("Hello")] 
public void TestCategory() 
{ 
    Assert.IsTrue(((ArrayList)TestContext.CurrentContext.Test.Properties["_CATEGORIES"]).Contains("Hello")); 
} 

etwas mehr auf der TestContext Klasse zu lesen here finden. Um das Problem mit diesem Ansatz zu lösen, müssten Sie natürlich die gesamte Testbaugruppe laden und zuvor alle Testfälle durchlaufen, was in Ihrem Szenario offensichtlich unerwünscht ist.

+0

Nicht ganz. Die ["_CATEGORIES"] gibt die Kategorien zurück, die den Test schmücken, was ich brauche, sind die in der Nunit-GUI oder Konsole ausgewählten Kategorien. – z0c

+0

@ z0c Vielleicht kein sehr ermutigendes Update, aber zumindest habe ich versucht, meine Antwort besser anzupassen Beantworte deine Frage. –

+0

in der "hier" -Link in dieser Antwort, bekomme ich eine "Account ausgesetzt" Nachricht. Bitte geben Sie einen neuen Link an. – funkymushroom