اختبارات أداء القضبان "اختبار أشعل النار: المعيار" و "اختبار أشعل النار: الملف الشخصي" أعطني أخطاء
-
23-09-2019 - |
سؤال
أحاول إجراء اختبار أداء افتراضي فارغ مع Ruby 1.9 و Rails 2.3.5 ولا يمكنني تشغيله! ماذا أفتقد هنا ؟؟؟
rails testapp
cd testapp
script/generate scaffold User name:string
rake db:migrate
rake test:benchmark
-
/usr/local/bin/ruby19 -I"lib:test" "/usr/local/lib/ruby19/gems/1.9.1/gems/rake-0.8.7/lib/rake/rake_test_loader.rb" "test/performance/browsing_test.rb" -- --benchmark
Loaded suite /usr/local/lib/ruby19/gems/1.9.1/gems/rake-0.8.7/lib/rake/rake_test_loader
Started
/usr/local/lib/ruby19/gems/1.9.1/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:105:in `rescue in const_missing': uninitialized constant BrowsingTest::STARTED (NameError)
from /usr/local/lib/ruby19/gems/1.9.1/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:94:in `const_missing'
from /usr/local/lib/ruby19/gems/1.9.1/gems/activesupport-2.3.5/lib/active_support/testing/performance.rb:38:in `run'
from /usr/local/lib/ruby19/1.9.1/minitest/unit.rb:415:in `block (2 levels) in run_test_suites'
from /usr/local/lib/ruby19/1.9.1/minitest/unit.rb:409:in `each'
from /usr/local/lib/ruby19/1.9.1/minitest/unit.rb:409:in `block in run_test_suites'
from /usr/local/lib/ruby19/1.9.1/minitest/unit.rb:408:in `each'
from /usr/local/lib/ruby19/1.9.1/minitest/unit.rb:408:in `run_test_suites'
from /usr/local/lib/ruby19/1.9.1/minitest/unit.rb:388:in `run'
from /usr/local/lib/ruby19/1.9.1/minitest/unit.rb:329:in `block in autorun'
rake aborted!
Command failed with status (1): [/usr/local/bin/ruby19 -I"lib:test" "/usr/l...]
نصائح أخرى
حسنًا ، المشكلة هي أن اختبار Ruby 1.8 المستخدم :: وحدة كمكتبة اختبار افتراضية. في Ruby 1.9 الذي تم تغييره إلى Minitest.
إصدارات Activesupport قبل 3.1.0 المفترض اختبار :: الوحدة. يبدو أنه تمت معالجته في 3.1.0 وبعد ذلك. إذا كنت تستخدم Rails 3.0.9 رغم ذلك ، فإنه يتمتع باعتماد على ActiveSupport 3.0.9 ، لذلك لا يمكنك طلب الإصدارات اللاحقة في Gemfile.
وجد هذه عبر جوجل. على ما يبدو ، لا تزال مكتبة Test :: Unit متوفرة ، ولكن كجوهرة تسمى "وحدة الاختبار".
لذلك في gemfile في الأعلى قبل جوهرة القضبان ، وضعت:
gem 'test-unit', '~> 2.3.0'
ثم ركضت اختبار أشعل النار: معايير وعملت!
أعتقد أنه خطأ. أنا قادر على تشغيل الكود مع Ruby 1.8.6 (2008-08-11 Patchlevel 287) [Universal-Darwin9.0]. تحت Ruby 1.9.1 ، أحصل على استثناء مثل الذي تصفه.
عندما تصل إلى Activesupport :: Testing :: Performance#Run (في Rails) ، فإنه يتسبب في استثناء في السطر yield(self.class::STARTED, name)
حيث تحاول العثور على الثابت :: ابدأ. لدى Ruby Prof طريقة مماثلة أيضًا ، ضمن Rubyprof :: Test#Run.
لا أعرف من هو على خطأ هنا.