Fehler bei ruby-prof in einem Rails Performance Test

7

Ich erstelle einen Rails-Leistungstest, wie im Rails Guide beschrieben und ich habe Probleme mit Ruby-prof.

Ich benutze Ruby 1.9.2-p0 (obwohl das gleiche Problem auf p320) und Rails 3.1.0.

Ich habe einen ziemlich einfachen Test für einen Controller, der diesem Beispiel entspricht.

>

Nach dem Leitfaden muss ich installieren Ruby-prof, bevor ich Leistungstests verwenden kann. Sicher genug, wenn ich meinen Leistungstest ohne es mache, bekomme ich:

  

Geben Sie ruby-prof als Abhängigkeit der Anwendung in Gemfile an, um Benchmarks auszuführen.

Wenn ich die Anweisungen des Leitfadens genau befolge, füge ich diese zu meiner Gemdatei hinzu:

  

Juwel 'Ruby-prof',: git = & gt; 'git: //github.com/wycats/ruby-prof.git'

... und Version 0.11.0 aus dem Wycats-Repository holen. Wenn ich meinen Test ausführe, bekomme ich diesen Fehler:

%Vor%

Aber "Wycats" scheint nicht das kanonische Github Repo für Ruby-Prof zu sein. Die Dokumentation bezieht sich auf rdp (Roger Pack). Wenn ich stattdessen dieses Repo verwende:

  

Juwel 'Ruby-prof',: git = & gt; 'git: //github.com/rdp/ruby-prof.git'

... Ich bekomme die Version 0.11.2 und bekomme diesen Fehler:

  

/Users/craig/.rvm/gems/ruby-1.9.2-p0/gems/activesupport-3.1.0/lib/active_support/testing/performance/ruby.rb:39:in run': undefined method values ​​'für [#]: Array (NoMethodError)       aus /Users/craig/.rvm/gems/ruby-1.9.2-p0/gems/activesupport-3.1.0/lib/active_support/testing/performance.rb:140:in 'run_profile'   ...

Ich bekomme den gleichen Fehler, wenn ich einfach den Edelstein von Rubygems direkt benutze (wieder, Version 0.11.2):

  

Juwel 'Rubin-Prof'

Irgendwelche Ideen, was schief läuft oder wie man es löst?

  

    
Craig Walker 28.05.2012, 03:45
quelle

5 Antworten

8

Um die neueste Version von ruby-prof zu verwenden, benötigen Sie rails 3.2.3, ich weiß nicht, welche ruby-prof-Version Sie mit rails 3.1 verwenden können, vielleicht können Sie lib / active_support / testing / performance / ruby.rb kopieren Aktive Unterstützung 3.2.3

    
scambra 01.06.2012, 01:12
quelle
8

Das Problem ist in activesupport-3.2.2 \ lib \ active_support \ testing \ performance \ ruby.rb.

Ändern Sie Zeile 39 von:

%Vor%

An:

%Vor%     
user1408616 03.06.2012 06:47
quelle
4

Ruby on Rails 3.2.6 hat das bereits korrigiert. Ссылка

Zeile 39

%Vor%

in Rails 3.2.3
Ссылка

ist es:

%Vor%

und sieht aus wie die Methode Werte hier fehlschlägt.

    
JjP 22.06.2012 15:42
quelle
1

Ich hatte das gleiche Problem. Ich habe das behoben, indem ich die korrekte ruby-prof-Version für meine Rails-Version installiert habe.

Also habe ich Rails 3.0.9 am 16. Juni 2011 veröffentlicht (gemäß Ссылка ).

Dann habe ich nach Ruby-prof gesucht, das ungefähr am selben Tag veröffentlicht wurde. Und es war 0.10.8 am 6. Juli 2011 veröffentlicht.

Nach der Installation der oben genannten funktionierte ich es. Einige der Profilierungsmetriken werden möglicherweise nicht unterstützt.

Prost.

    
jef 27.02.2013 04:57
quelle
0

In meinem Fall mit Rails 3.2.9 habe ich das automatisch generierte Verzeichnis 'test / performance' aus meinem Projekt entfernt.

    
ruseel 26.11.2012 08:01
quelle