it-swarm.asia

خطأ عند محاولة تشغيل rspec: `require ': لا يمكن تحميل هذا الملف - Rails_helper (LoadError)

أحاول تشغيل rspec لـ Ruby on Rails. أنا أركض القضبان 4.1.1. لقد قمت بتثبيت الأحجار الكريمة ، وأنشأت مجلد المواصفات مع بعض الاختبارات. لقد قمت بإنشاء دليل من خلال $ Rails g rspec:install

لقد حاولت إنشاء قاعدة بيانات اختبار من خلال $ rake db:test:prepare ولكنه يلقي رسالة الخطأ هذه:

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

انتهى بي الأمر إلى النظر إلى { نشر تجاوز سعة المكدس هذا ، والخيارين ، الخيار الذي كان يعمل:

rake db:schema:load Rails_ENV=test 

لذلك ، الآن أنا بحاجة لتشغيل rspec .

عندما أقوم بتشغيل $ rspec spec من سطر الأوامر ، أحصل على هذا الخطأ:

/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)

كيف يمكنني حل هذا حتى أتمكن من بدء تشغيل الاختبارات؟

57
HPJAJ

هناك بعض المشاكل مع rspec V3. لكن في حالتك أنت تستخدم V2.

يتغيرون

require 'Rails_helper'

إلى

require 'spec_helper'

وصف آخر تجد هنا https://teamtreehouse.com/forum/problem-with-rspec

بالنسبة إلى الإصدار 3:

إذا قام شخص ما باستخدام rspec V3 ، فسيحدث خطأ مشابه عند عدم تشغيل المولد. لذلك قبل محاولة أي شيء تشغيل مولد.

Rails generate rspec:install

إذا كنت تحصل على قائمة ضخمة من التحذير على وحدة التحكم الخاصة بك. ثم تحتاج إلى إزالة --warnings من ملف .rspec.

69
Dipak Gupta

لقد حدث هذا الخطأ بالفعل في Rails 4 مع rspec 3 ، لكن في حالتي نسيت تشغيل المولد:

Rails generate rspec:install

كما اضطررت إلى إزالة warnings من .rspec ، كما ذكر ذكره أحد مطوري rpsec

58
fotanus

بالنسبة لي ، كانت المشكلة بسبب إصدار "rspec-support" مختلف تم تحميله وتنشيطه. لقد تم حلها عن طريق الدفع المسبق لـ "حزمة exec":

bundle exec rspec
8
Daniel Loureiro

بالنسبة للإصدارات الأحدث (3.5) ، إذا كنت بحاجة إلى تشغيل المولد ، فإن Rails generate rspec:install لا يناسبني. انا إستعملت:

rspec --init

ينشئ .rspec و spec/spec_helper.rb.

تحرير: فقط في الحالة ، اكتشفت أنني قمت بتثبيت rspec gem لـ Ruby ، ​​وليس تلك الموجودة في Rails ، لذلك rspec: install لم يكن متاحًا. يجب استخدام https://github.com/rspec/rspec-Rails .

5
Hans Araya

كان لدي نفس الخطأ ولكن لم تكن هناك إشارة إلى Rails_helper في أي مكان ولم نستخدم Rails.

ومع ذلك ، اكتشفت في النهاية أن ~/.rspec الخاص بي كان يتطلب Rails_helper (من المفترض أن يكون من إنشاء تطبيق Rails في الماضي) والذي كان يسبب المشكلة ...

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

الإصلاح بسيط مثل إزالة هذا الخط. آمل أن يساعد هذا شخصًا آخر في مواجهة نفس المشكلة!

3
daveharris

لم ينجح أي من هذه الاقتراحات بالنسبة لي على Rails 4.2.0 مع rspec-Rails 3.2.3.

بدلاً من ذلك ، وضعت السطرين التاليين في الجزء العلوي من ملف المواصفات:

require 'Rails_helper'
require 'spec_helper'

الآن يمكنني تنفيذ rspec spec/features/my_spec.rb.

2
mycargus

في بعض الأحيان تحتاج إلى تشغيل الأمر rspec من الدليل الأصل للمشروع

2
toki

أحد الاحتمالات التي نجحت بالنسبة لي هي التأكد من أنك تطلب spec_helper. يمكن أن يتطلب RubyMine الافتراضي rspec وهذا يمكن أن يؤدي في بعض الأحيان إلى هذا الخطأ.

2
Anthony Dreessen

من أجل أحد ما. إذا حصلت على هذا الخطأ عند محاولة اختبار ملف معين. قد ترغب في هذا

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

قد يكون لديك ملفك اسمه بشكل غير صحيح. تأكد من أنه ينتهي بـ _spec.rb. لقد أخطأت في كتابة ملفي لتنتهي في _soec.rb وكنت أخدش رأسي لفترة من الوقت ...

0
mr.musicman

تذكر دائمًا تشغيل rspec أو bundle exec rspec من جذر مشروعك. شيء مثل:

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

حصلت على الخطأ الذي وصفته عند تشغيل اختبار وحدة التحكم. ومع ذلك ، عندما أجريت اختبار نموذجي ، حصلت على الخطأ الحقيقي. انتهى الأمر إلى القول إن الخطأ كان يحدث لأنه لم يتم ترحيل قاعدة البيانات الخاصة بي. أصلحت الخطأ عن طريق تشغيل هذا الأمر ...

rake db:test:prepare

0
thedanotto