keine solche zu ladende Datei - rspec / matchers - rspec-rails, sophage, gurke, werfer girl, Rails2.3.10

8

Ich habe eine alte Rails2.3-App geerbt. Es ist sehr komplex und hat (Schock, Horror) keinerlei Tests. Ich bin an rspec und Gurke gewöhnt, also dachte ich, ich würde anfangen, Spezifikationen und Features für das spätere Upgrade auf Rails 3 zu entwickeln. Es ist einfacher zu aktualisieren, wenn ich genau weiß, was scheitern wird.

Wie auch immer, ich fand es sehr schwierig, Ressourcen im Internet zu finden, die zeigen, wie man rspec, gurke, factory girl und sophia in einer rails 2.3 Umgebung aufbaut. Mein Bündel ist wie folgt:

%Vor%

Wenn ich loslaufe

%Vor%

Ich bekomme den folgenden Stacktrace von shofa:

%Vor%

Googeln für diesen Fehler liefert erschreckend wenige Treffer ... Ich bin mir nicht sicher, was ich falsch gemacht habe?

Das Entfernen von rspec-core ergibt:

bundle exec rspec Spezifikation / models / ansage_spec.rb /Users/sys/.rvm/gems/ree-1.8.7-2011.03@proj/gems/bundler-1.0.14/lib/bundler/rubygems_integration.rb:143:in 'gem': rspec-core ist nicht Bestandteil von das Paket. Füge es zu Gemfile hinzu. (Gem :: LoadError)

Inhalt von opt / local / bin / rspec

%Vor%

Ich frage mich, ob das mit anderen von mir installierten rspecs im Konflikt steht (ich habe eine Rails3 App installiert, auch mit Bundler / rvm) ... nicht sicher warum rspec von opt / local / bin ausgeführt wird und nicht die Bündel, obwohl ..

    
Matt Rogish 02.06.2011, 13:58
quelle

3 Antworten

11

Ich stieß auf dasselbe Problem. Nachdem ich alle binären rspec-Befehle (mehrere Stellen) gesucht hatte, erkannte ich verspätet, dass der 1.3.2-Zweig von RSPEC seine binäre "spec" und nicht "rspec" nennt.

Also waren die richtigen Befehle immer "bundle exec spec spec / models / ..." Das Setzen von "rspec" bedeutete, dass Bundler es in meinem aktuellen rvm / gemset nicht finden konnte und meinen gesamten Pfad durchforstete, um schließlich zu kommen Eine / opt / local / bin-Kopie, die zu einer Installation von rspec2.x gehörte.

Es ist möglich, dass ein Alias ​​es zulässt, dass rspec 1.3.2 auch auf den "rspec" -Befehl reagiert, aber das war nicht der Fall für mich. Die Verwendung von "spec" war 100% zuverlässig, um diesen Aufruf für rspec-core- und andere 2.x-Module zu vermeiden.

Danke für die Frage und die ganze obige Forschung. Charles

    
Charles Forcey 21.06.2011, 00:41
quelle
1

Es sieht so aus, als ob rspec-core, das aus einer Version von rspec stammt, die nur Rails 3 unterstützt, das Problem sein könnte. Versuche dies zu deinstallieren und entferne es aus deiner Gemfile.

Zum Vergleich, hier ist ein Abschnitt aus unserer Gemfile, der für Rails 2.3 funktioniert:

%Vor%     
Mori 02.06.2011 14:09
quelle
1

A bundle update rspec-rails hat dieses Problem für mich auf Schienen 3.1 behoben.

    
Charlie Bowman 23.03.2012 16:00
quelle