Ich möchte in der Lage sein, die Tests einer einzelnen Spezifikationsdatei auszuführen - zum Beispiel für die eine Datei, die ich bearbeite. rake spec
führt alle Spezifikationen aus. Mein Projekt ist kein Rails-Projekt, rake spec:doc
funktioniert also nicht.
Ich weiß nicht, ob das wichtig ist, aber hier ist meine Verzeichnisstruktur.
./Rakefile ./lib ./lib/cushion.rb ./lib/kissen ./lib/cushion/doc.rb ./lib/cushion/db.rb ./spec ./spec/spec.opts ./spec/spec_helper.rb ./spec/db_spec.rb
Der rohe Aufruf:
Finden Sie nun heraus, wie Sie dies in Ihren Editor einbetten können.
quelle
Diese Frage ist alt, wird jedoch bei der Suche nach der Ausführung eines einzelnen Tests oben in Google angezeigt. Ich weiß nicht, ob es sich um eine neue Erweiterung handelt, aber um einen einzelnen Test aus einer Spezifikation heraus auszuführen, können Sie Folgendes tun:
Dabei ist -Zeilennummer- eine Zeilennummer, die einen Teil Ihres Tests enthält. Zum Beispiel, wenn Sie eine Spezifikation hatten wie:
Angenommen, es wird in spec / models / foo_spec.rb gespeichert. Dann würden Sie laufen:
und es würde nur diese eine Spezifikation ausführen. Tatsächlich kann diese Zahl zwischen 2 und 5 liegen.
Hoffe das hilft!
quelle
require
Ihren anderen Spezifikationsdateien entspricht?rspec spec/models/foo_spec.rb:2:12:49
Sie können auch den eigentlichen Text des * e * xample-Testfalls mit verwenden
-e
!So für:
Sie können verwenden
Hier ist kein Rechen nötig.
quelle
von der Hilfe (spec -h):
Beispiel: spec spec / running_spec.rb -l 162
quelle
:
gemäß der Dokumentation und einer beliebten Antwort hinzu.Wenn Sie rspec als Plugin und nicht als Juwel installiert haben, verfügen Sie nicht über die
spec
ausführbare Datei.In jedem Fall müssen Sie die Datei nur mit Ruby ausführen. Der rspec-Code ist clever genug, um die Tests für Sie auszuführen.
z.B:
quelle
Mit http://github.com/grosser/single_test können Sie Dinge wie ... tun.
quelle
Ruby 1.9.2 und Rails 3 bieten eine einfache Möglichkeit, eine Spezifikationsdatei auszuführen:
Erläuterung:
ruby
Befehl ist in der Regel schneller als derrake
Befehl-I spec
bedeutet "das Verzeichnis 'spec' bei der Suche nach Dateien einschließen"spec/models/user_spec.rb
ist die Datei, die wir ausführen möchten.quelle
So führen Sie alle Ihre rspec-Dateien aus:
rspec
Hinweis: Sie müssen sich im Stammverzeichnis Ihres Projekts befinden
So führen Sie eine rspec-Datei aus:
rspec 'path_to/spec.rb'
Hinweis: Ersetzen Sie 'path_to / spec.rb' durch Ihren Pfad. Anführungszeichen optional.
So führen Sie einen rspec- Test aus einer Datei aus:
rspec 'path_to/spec.rb:7'
Hinweis :: 7 ist die Zeilennummer, unter der der Test beginnt
quelle
Ich hatte Probleme, eines dieser Beispiele zum Laufen zu bringen, vielleicht weil der Beitrag alt ist und sich die Befehle geändert haben?
Nach einigem Stöbern fand ich Folgendes:
rspec spec / models / user_spec.rb
Dadurch wird nur die einzelne Datei ausgeführt und eine nützliche Ausgabe im Terminal bereitgestellt.
quelle
specky.vim
quelle
Alternativ können Sie sich auch den Autotest ansehen.
Wenn Sie den Autotest in einem Befehlsfenster ausführen, wird die Spezifikationsdatei jedes Mal ausgeführt, wenn Sie sie speichern. Außerdem wird es immer dann ausgeführt, wenn die von Ihnen angegebene Datei ausgeführt wird.
Wenn Sie beispielsweise eine Modellspezifikationsdatei mit dem Namen person_spec.rb und eine Modelldatei mit dem Namen person.rb haben, wird die Spezifikationsdatei ausgeführt, wenn Sie eine dieser Dateien in Ihrem Editor speichern.
quelle
Obwohl viele gute Antworten auf diese Frage geschrieben wurden, verwendet keine von ihnen den Rspec-
tags
Ansatz.Ich verwende Tags, um eine oder mehrere Spezifikationen in verschiedenen Dateien auszuführen - nur solche, die sich auf meine aktuelle Entwicklungsaufgabe beziehen.
Zum Beispiel füge ich das Tag "dev" mit dem Wert "current" hinzu:
dann renne ich
In einzelnen Spezifikationen oder Gruppen können unterschiedliche Tags / Werte festgelegt werden.
quelle
Nehmen wir an, Sie führen einen Test zum Erstellen von Aufgaben aus. Sie können diesen spezifischen ToDo-Spezifikationscode jederzeit mit der Datei crete_spec.rb wie folgt ausführen.
Wenn Sie alle Spezifikationen in einem einzigen Kurzschluss ausführen möchten.
Wenn Sie alle Spezifikationen in einem bestimmten Controller ausführen möchten, verwenden Sie dies.
Hoffe es gibt dir mehr Verständnis!
quelle