39 Stimmen

Wie führt man Tests aus, die nur mit einem regulären Ausdruck übereinstimmen?

In sbt 0.10.1 verwende ich häufig test-only um die Anzahl meiner Tests einzuschränken.

sbt> test-only com.example.MySpec

Ich möchte jedoch so eingrenzen, dass ich nur Tests ausführe, deren Name/Beschreibung einem regulären Ausdruck entspricht. Gibt es eine Syntax, um so etwas zu erreichen?

sbt> test-only .*someRexExp.*

51voto

Mark Harrah Punkte 6959

Vollständige reguläre Ausdrücke werden nicht unterstützt von testOnly . Wildcards werden jedoch unterstützt.

sbt> testOnly com.example.*Spec

Nur das Sternchen * wird hier speziell interpretiert und nicht die Punkte. Damit werden alle Tests ausgewählt, die mit com.example. und endet mit Spec .

Oder einfach alle Tests Spec s:

sbt> testOnly *Spec

testOnly und andere Testinformationen sind hier dokumentiert: http://www.scala-sbt.org/release/docs/Detailed-Topics/Testing

15voto

ches Punkte 5908

Sie können im Test übereinstimmen Fälle durch ihren Namen (anstelle von oder zusätzlich zu den Namen der Suitenklassen), indem Sie Framework-spezifische Läuferargumente . ScalaTest unterstützt einen Teilstring-Match mit dem -z Argument:

> testOnly -- -z insert
> testOnly *TreeSpec -- -z insert

Dies führt alle Tests mit "insert" im Namen aus, dann nur die passenden Fälle innerhalb der Suiten, die auf TreeSpec wie Sie sich denken können. Sie können auch verwenden -n TagName y -l TagName um Tags in die Tagging-Unterstützung von ScalaTest einzuschließen bzw. auszuschließen, und -t um einen exakten Testnamen zu finden.

Specs2 unterstützt vollständige reguläre Java-Ausdrücke mit einer -ex Argument:

> testOnly -- -ex ".*someRexExp.*"

-include y -exclude unterstützen die Tagging-Funktionen von Spec2.

Die vollständigen Listen der von den Läufern unterstützten Argumente finden Sie unter den Inline-Links. Diese scheinen nur mit dem testOnly sbt-Befehl und nicht test .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X