2010-05-28 12 views
9

überspringt In einem meiner Projekte muss ich mit mehreren Backend-Systemen zusammenarbeiten. Einige von ihnen fehlen etwas in der Dokumentation und teilweise habe ich deshalb einen Testcode, der mit einigen Testservern interagiert, nur um zu sehen, dass alles wie erwartet funktioniert. Der Zugriff auf diese Server ist jedoch ziemlich langsam und daher möchte ich diese Tests nicht jedes Mal ausführen, wenn ich meine Testsuite ausführe.Wie man bestimmte Tests mit Test :: Unit

Meine Frage ist, wie Sie mit einer Situation umgehen, in der Sie bestimmte Tests überspringen möchten. Derzeit verwende ich eine Umgebungsvariable 'BACKEND_TEST' und eine bedingte Anweisung, die überprüft, ob die Variable für jeden Test gesetzt ist, den ich überspringen möchte. Aber manchmal möchte ich alle Tests in einer Testdatei überspringen, ohne eine zusätzliche Zeile am Anfang jedes Tests hinzufügen zu müssen.

Die Tests, die mit den Testservern interagieren müssen, sind nicht viele, da ich Flexmock in anderen Situationen verwende. Sie können sich jedoch nicht vor der Realität verstecken.

Wie Sie aus dem Titel dieser Frage sehen können, verwende ich Test :: Unit. Wenn es einen Unterschied macht, ist das Projekt ein Rails-Projekt.

Antwort

8

New Features Of Test Unit 2.x schlägt vor, dass test-unit 2.x (die Edelstein-Version, nicht die Ruby 1.8 Standard-Bibliothek) Sie Tests auslassen können.

+1

Thank you! Ich habe die Folie vorher gelesen, aber nie nachgesehen, ob 2.x tatsächlich veröffentlicht wurde. Es hat und ich werde es mir genauer ansehen. –

+1

Beachten Sie, dass Tests fehlschlagen. Wenn Sie eine Reihe von fehlgeschlagenen Tests nicht möchten, können Sie Minitest überspringen oder einfach eine Return-Anweisung hinzufügen, wenn eine Bedingung oben im Test steht. – coberlin

+0

@coberlin - Hinweis: Auslassen löst NUR eine Ausnahme aus, wenn kein Block angegeben wird. Sie können den Körper Ihres Tests einfach als Block übergeben. –