webentwicklung-frage-antwort-db.com.de

Fehler beim Versuch, rspec auszuführen: `requir ': solche Datei kann nicht geladen werden

Ich versuche, rspec für Ruby on Rails auszuführen. Ich betreibe Rails 4.1.1. Ich habe das Juwel installiert, habe mit einigen Tests einen Spec-Ordner erstellt. Ich habe ein Verzeichnis erstellt durch $ Rails g rspec:install 

Ich habe versucht, eine Testdatenbank über $ rake db:test:prepare zu erstellen, aber es wird folgende Fehlermeldung ausgegeben:

WARNING: db:test:prepare is deprecated. The Rails test helper now maintains your test 
schema automatically, see the release notes for details.

Also schaute ich mir diesen Stack Overflow Post an, und von den beiden Optionen funktionierte die folgende:

rake db:schema:load Rails_ENV=test 

Also, jetzt muss ich rspec ausführen

Wenn ich $ rspec spec von der Kommandozeile aus laufe, erhalte ich diesen Fehler:

/Users/myname/.rbenv/versions/2.1.1/lib/Ruby/2.1.0/rubygems/core_ext/
kernel_require.rb:55:in `require': cannot load such file -- Rails_helper (LoadError)

Wie kann ich das beheben, damit ich mit dem Ausführen von Tests beginnen kann?

55
HPJAJ

Es gibt einige Probleme mit rspec V3. In Ihrem Fall verwenden Sie jedoch V2.

veränderung 

require 'Rails_helper'

zu

require 'spec_helper'

Weitere Beschreibung finden Sie hier https://teamtreehouse.com/forum/problem-with-rspec

Für V3:

Wenn jemand mit rspec V3 arbeitet, tritt ein ähnlicher Fehler auf, wenn der Generator nicht läuft. Also, bevor Sie irgendetwas versuchen, Generator laufen zu lassen.

Rails generate rspec:install

Wenn Sie eine riesige Liste mit Warnungen auf Ihrer Konsole erhalten. Dann müssen Sie --warnings aus der .rspec-Datei entfernen.

66
Dipak Gupta

Ich hatte diesen Fehler gerade auf Rails 4 mit rspec 3, aber in meinem Fall habe ich vergessen, den Generator auszuführen:

Rails generate rspec:install

Ich musste auch warnings aus .rspec entfernen, wie von einem der rpsec-Entwickler angegeben

56
fotanus

Für mich war das Problem aufgrund einer anderen "rspec-support" -Version geladen und aktiviert. Ich habe das Problem gelöst, indem ich ein "Bundle exec" vorangestellt habe:

bundle exec rspec
8
Daniel Loureiro

Für neuere Versionen (3.5) funktioniert Rails generate rspec:install für mich nicht, wenn Sie den Generator ausführen müssen. Ich benutzte:

rspec --init

Erzeugt .rspec und spec/spec_helper.rb.

EDIT: Nur für den Fall habe ich herausgefunden, dass ich rspec gem für Ruby und nicht das für Rails installiert habe. Rspec: install war nicht verfügbar. Verwenden Sie https://github.com/rspec/rspec-Rails .

5
Hans Araya

Ich hatte den gleichen Fehler, aber es gab nirgendwo einen Verweis auf Rails_helper und wir verwendeten nicht einmal Rails.

Schließlich stellte ich jedoch fest, dass mein ~/.rspecRails_helper (vermutlich aus der früheren Erstellung der Rails-App) erforderte, was zu dem Problem führte ...

$ cat ~/.rspec
--color
--format documentation
--require spec_helper
--require Rails_helper

Das Update ist so einfach wie das Entfernen dieser Zeile. Hoffe, das hilft jemandem, der sich mit dem gleichen Problem auseinandersetzt!

3
daveharris

Keiner dieser Vorschläge hat auf Rails 4.2.0 mit rspec-Rails 3.2.3 funktioniert. 

Stattdessen habe ich die folgenden zwei Zeilen oben in meine Spec-Datei eingefügt:

require 'Rails_helper'
require 'spec_helper'

Jetzt kann ich rspec spec/features/my_spec.rb ausführen.

2
mycargus

Manchmal müssen Sie den Befehl rspec im übergeordneten Verzeichnis von Project ausführen

2
toki

Eine Möglichkeit, die für mich funktioniert hat, ist sicherzustellen, dass Sie spec_helper benötigen. RubyMine kann standardmäßig rspec erfordern, was manchmal zu diesem Fehler führen kann.

2

Für jemanden. Wenn Sie diese Fehlermeldung erhalten haben, testen Sie eine bestimmte Datei. Sie könnten das mögen

$ bundle exec rspec ./spec/features/user_login_spec.rb
$ bundle exec rspec ./spec/models/user_login_spec.rb
0

Möglicherweise haben Sie Ihre Datei auch falsch benannt. Stellen Sie sicher, dass es mit _spec.rb endet. Ich hatte meine Datei falsch geschrieben, um _soec.rb zu enden, und kratzte sich eine Weile am Kopf ...

0
mr.musicman

Denken Sie immer daran, die rspec oder den bundle exec rspec im Stammverzeichnis Ihres Projekts auszuführen. So etwas wie:

bundle exec rspec spec/features/file_test_spec.rb
0
Leandro Castro

Ich habe den Fehler erhalten, den Sie beim Ausführen eines Controllertests beschrieben haben. Als ich jedoch einen Modelltest durchführte, bekam ich den wahren Fehler. Es endete damit, dass der Fehler aufgetreten ist, weil meine Datenbank nicht migriert wurde. Ich habe den Fehler durch Ausführen dieses Befehls behoben ... 

rake db:test:prepare

0
thedanotto