2015-11-23 17 views
5

Es gibt eine Möglichkeit zu konfigurieren, dass Teamcity einige Tests ignoriert? Ich muss diese Tests nur lokal ausführen, wenn sie in Teamcity ausgeführt werden, muss ignoriert werden.So konfigurieren Sie Teamcity, um einige Tests zu ignorieren

Ich benutze Nunit.

Dies könnte eine Richtlinie, Attribut usw.

+0

http://stackoverflow.com/questions/15618225/teamcity-re-running-a-specific-build-step – MethodMan

Antwort

10

Sie können dies auf Ihre Tests durch Zugabe von Testkategorien tun sein.

[Category("LocalOnly")] 
[Test] 
public void MyLocalTest() 
{ 
    // Code omitted for brevity 
} 

Sie können dann diese Kategorie zu den wichtigsten NUnit Läufer hinzufügen ‚NUnit Kategorien ausschließen:‘ Feld in der Teamcity Build-Schritt.

NUnit categories exclude: LocalOnly 

The TeamCity NUnit ignore category field

2

Teamcity 9.1 supports NUnit 3 und es öffnet many other possibilities Tests auszuwählen, die für die Ausführung oder filtern. Ich würde empfehlen, --where=EXPRESSION zu verwenden, die verwenden können. Jetzt können Sie sogar reguläre Ausdrücke verwenden, um Tests anzugeben, die Sie ausführen oder ausschließen möchten.

Beispiele

Haben Sie nur ein Test ausschließen möchten?

--where="method != 'TestName'" 

Möchten Sie nur einen Test ausschließen? Kann mich nicht erinnern, den Namen genau, sondern etwas mit „BuggyMethod“ (~ bedeutet, dass ein regulärer Ausdruck beteiligt ist):

--where="method !~ 'BuggyMethod'" 

Run alle Tests in einer Klasse definiert:

--where="class == 'My.Namespace.ClassName'" 

Vergessen Sie den vollständigen Namespace ? Es ist kein Problem mehr - verwenden Sie einen regulären Ausdruck:

Sie können diese Ausdrücke auch kombinieren, um den gewünschten Effekt zu erzielen. Führen Sie alle Tests für die Klasse aber exlude alle Methoden, die „BuggyMethod“ enthalten:

--where="class =~ 'ClassName' and method !~ 'BuggyMethod'" 

Dieser Ansatz ist viel flexibler und vermeidet Änderungen des Codes. Ich sehe keinen Punkt mehr für die Verwendung von Kategorien, es sei denn, Ihre Tests werden anhand von Kategorien klassifiziert.

Verwandte Themen