كيف يمكنك تشغيل اختبار واحد/المواصفات الملف في RSpec?
سؤال
كنت تريد أن تكون قادرة على تشغيل واحد المواصفات ملف اختبارات — على ملف واحد أنا والتحرير ، على سبيل المثال. rake spec
ينفذ جميع المواصفات.مشروعي ليس القضبان المشروع ، rake spec:doc
لا تعمل.
لا أعرف إذا كانت هذه المسائل, ولكن هنا هو بلدي بنية الدليل.
./Rakefile ./lib ./lib/cushion.rb ./lib/cushion ./lib/cushion/doc.rb ./lib/cushion/db.rb ./spec ./spec/spec.opts ./spec/spec_helper.rb ./spec/db_spec.rb
المحلول
أو يمكنك تخطي أشعل النار واستخدام 'rspec' الأمر:
rspec path/to/spec/file.rb
في حالتك أعتقد طالما الخاص بك ./المواصفات/db_spec.rb يتضمن ملف المناسبة المساعدين ، ينبغي أن تعمل بشكل جيد.
إذا كنت تستخدم نسخة قديمة من rspec هو:
spec path/to/spec/file.rb
نصائح أخرى
الخام الاحتجاج:
rake spec SPEC=spec/controllers/sessions_controller_spec.rb \ SPEC_OPTS="-e \"should log in with cookie\""
الآن معرفة كيفية تضمين هذا في المحرر الخاص بك.
هذا السؤال قديم ، لكنه يظهر في الجزء العلوي من جوجل عند البحث عن كيفية تشغيل اختبار واحد.أنا لا أعرف إذا كان هذا الأخير بالإضافة إلى ذلك ، ولكن لتشغيل اختبار واحد من المواصفات يمكنك القيام بما يلي:
rspec path/to/spec:<line number>
حيث سطر رقم هو رقم السطر الذي يحتوي على جزء من الاختبار.على سبيل المثال, إذا كان لديك المواصفات مثل:
1:
2: it "should be awesome" do
3: foo = 3
4: foo.should eq(3)
5: end
6:
دعنا نقول انها المحفوظة في المواصفات/نماذج/foo_spec.rb.ثم يمكنك تشغيل:
rspec spec/models/foo_spec.rb:2
وسيكون فقط تشغيل هذا واحد المواصفات.في الواقع ، أن العدد يمكن أن يكون أي شيء من 2 إلى 5.
ويساعد هذا الأمل!
يمكنك أيضا استخدام النص الفعلي من *e*xample حالة اختبار مع -e
!
لذلك:
it "shows the plane arrival time"
يمكنك استخدام
rspec path/to/spec/file.rb -e 'shows the plane arrival time'
./scripts/spec path/to/spec/file.rb -e 'shows the plane arrival time'
لا حاجة أشعل النار هنا.
من مساعدة (المواصفات -h):
-l, --line LINE_NUMBER Execute example group or example at given line.
(does not work for dynamically generated examples)
على سبيل المثال:المواصفات المواصفات/runner_spec.rb-l 162
إذا قمت بتثبيت rspec بمثابة المساعد بدلا من الأحجار الكريمة ، ثم لن يكون لديك spec
قابل للتنفيذ.
على أية حال, كل ما عليك القيام به هو تشغيل الملف باستخدام روبي.على rspec رمز هو ذكي بما فيه الكفاية لتشغيل الاختبارات بالنسبة لك.
على سبيل المثال:
ruby myclass_spec.rb
http://github.com/grosser/single_test يتيح لك أن تفعل أشياء مثل..
rake spec:user #run spec/model/user_spec.rb (searches for user*_spec.rb)
rake test:users_c #run test/functional/users_controller_test.rb
rake spec:user:token #run the first spec in user_spec.rb that matches /token/
rake test:user:token #run all tests in user_test.rb that match /token/
rake test:last
rake spec:last
روبي 1.9.2 والقضبان 3 طريقة سهلة لتشغيل واحد المواصفات الملف:
ruby -I spec spec/models/user_spec.rb
التفسير:
ruby
الأمر يميل إلى أن يكون أسرع منrake
الأمر-I spec
يعني "تشمل 'المواصفات' الدليل عند البحث عن ملفات"spec/models/user_spec.rb
هو الملف الذي تريد تشغيله.
لتشغيل كل من rspec الملفات: rspec
ملاحظة:يجب أن تكون في أصل المشروع الخاص بك
لتشغيل واحد rspec الملف: rspec 'path_to/spec.rb'
ملاحظة:استبدال 'path_to/المواصفات.rb مع المسار الخاص بك.علامات الاقتباس الاختياري.
لتشغيل واحد rspec اختبار من ملف واحد: rspec 'path_to/spec.rb:7'
ملاحظة::7 هو رقم السطر حيث يبدأ الاختبار
كنت تواجه صعوبة في الحصول على أي من هذه الأمثلة أن العمل ربما لأن المنصب القديم و الأوامر تغيرت ؟
بعد بعض بدس حول وجدت هذه الأعمال:
rspec المواصفات/نماذج/user_spec.rb
التي سوف تعمل فقط ملف واحد و مفيدة الانتاج في المحطة.
specky.همة
بدلا من ذلك, إلقاء نظرة على autotest.
تشغيل autotest في إطار الأوامر يعني أن المواصفات الملف سيتم تنفيذها كلما حفظه.أيضا, سيتم تشغيل كلما ملف speccing هو تشغيل.
على سبيل المثال, إذا كان لديك نموذج المواصفات ملف يسمى person_spec.rb و نموذج الملف الذي هو speccing يسمى الشخص.rb, ثم كلما يمكنك حفظ أي من هذه الملفات من جهاز محرر المواصفات الملف سوف يتم تنفيذها.
دعنا نقول أنك تشغيل اختبار خلق ما يجب عمله.يمكنك دائما تشغيل محددة todo المواصفات البرمجية باستخدام ملفات crete_spec.rb الملف أدناه.
rspec/spec/features/controller/spec_file_name.rb
Example:
Creating rspec spec/features/todos/create_spec.rb
Editing rspec spec/features/todos/edit_spec.rb
Deleting rspec spec/features/todos/destroy_spec.rb
إذا كنت ترغب في تشغيل جميع المواصفات في واحدة قصيرة.
rspec
إذا كنت ترغب في تشغيل جميع المواصفات المحددة تحكم المستخدم هذا.
rspec/spec/feaures/controller_name
Example: rspec/spec/features/todos
أتمنى أن يمنحك المزيد من الفهم!
على الرغم من أن العديد من الإجابات كانت مكتوبة على هذا السؤال لا أحد منهم يستخدم Rspec tags
النهج.
يمكنني استخدام علامات تشغيل واحد أو أكثر من المواصفات في ملفات مختلفة -- فقط تلك المتعلقة الحالي التنمية المهمة.
على سبيل المثال ، إضافة الوسم "ديف" مع قيمة "الحالية":
it "creates an user", dev: :current do
user = create(:user)
expect(user.persisted?).to be_truthy
end
ثم تشغيل
bundle exec rspec . --tag dev:current
علامات مختلفة/يمكن تعيين قيم في المواصفات الفردية أو مجموعات.