اختبارات أداء القضبان "اختبار أشعل النار: المعيار" و "اختبار أشعل النار: الملف الشخصي" أعطني أخطاء

StackOverflow https://stackoverflow.com/questions/2542520

سؤال

أحاول إجراء اختبار أداء افتراضي فارغ مع 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.

لا أعرف من هو على خطأ هنا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top