Question

Je viens mis à jour pour essayer rails 3, en utilisant RVM rubis 1.9.2-p0.

Quand je lance mes specs de concombre puis je reçois des avertissements suivants étranges

/home/ubuntu/.rvm/gems/ruby-1.9.2-p0/gems/rack-1.2.1/lib/rack/utils.rb:16: warning: regexp match /.../n against to UTF-8 string

/home/ubuntu/.rvm/gems/ruby-1.9.2-p0/gems/rack-1.2.1/lib/rack/utils.rb:16: warning: regexp match /.../n against to UTF-8 string

/home/ubuntu/.rvm/gems/ruby-1.9.2-p0/gems/rack-1.2.1/lib/rack/utils.rb:16: warning: regexp match /.../n against to UTF-8 string

Mon paquet contient des pierres précieuses ... suite

Using rake (0.8.7) 
Using abstract (1.0.0) 
Using activesupport (3.0.0) 
Using builder (2.1.2) 
Using i18n (0.4.1) 
Using activemodel (3.0.0) 
Using erubis (2.6.6) 
Using rack (1.2.1) 
Using rack-mount (0.6.13) 
Using rack-test (0.5.4) 
Using tzinfo (0.3.23) 
Using actionpack (3.0.0) 
Using mime-types (1.16) 
Using polyglot (0.3.1) 
Using treetop (1.4.8) 
Using mail (2.2.5) 
Using actionmailer (3.0.0) 
Using arel (1.0.1) 
Using activerecord (3.0.0) 
Using activeresource (3.0.0) 
Using bundler (1.0.0) 
Using culerity (0.2.12) 
Using nokogiri (1.4.3.1) 
Using ffi (0.6.3) 
Using json_pure (1.4.6) 
Using rubyzip (0.9.4) 
Using selenium-webdriver (0.0.28) 
Using capybara (0.3.9) 
Using configuration (1.1.0) 
Using diff-lcs (1.1.2) 
Using trollop (1.16.2) 
Using gherkin (2.1.5) 
Using term-ansicolor (1.0.5) 
Using cucumber (0.8.5) 
Using cucumber-rails (0.3.2) 
Using database_cleaner (0.5.2) 
Using launchy (0.3.7) 
Using mysql2 (0.2.3) 
Using rspec-core (2.0.0.beta.20) 
Using rspec-expectations (2.0.0.beta.20) 
Using rspec-mocks (2.0.0.beta.20) 
Using rspec (2.0.0.beta.20) 
Using yard (0.6.0) 
Using pickle (0.4.2) 
Using thor (0.14.0) 
Using railties (3.0.0) 
Using rails (3.0.0) 
Using rspec-rails (2.0.0.beta.20) 
Using spork (0.8.4) 
Using webrat (0.7.1) 

Quelqu'un sait comment se débarrasser de ces mises en garde? Et où ils viennent?

Était-ce utile?

La solution

Il y a une bonne solution disponible à ce que j'ai trouvé sur un blog par Enrico Stahn: http://blog.enricostahn.com/warning -regexp match-n-contre-to-utf-8-strin

Le problème est en rack et a apparemment déjà été fixé 1.3.0 mais vous ne pouvez pas être en mesure de mettre à niveau encore.

jusqu'à ce que vous pouvez mettre à niveau vers rack 1.3.0, créez le fichier config/initializers/rack_hotfix.rb avec le contenu suivant:

# TODO: Can be removed after updating to rack 1.3.0
module Rack
  module Utils
    def escape(s)
      CGI.escape(s.to_s)
    end
    def unescape(s)
      CGI.unescape(s)
    end
  end
end

Cela a un charme pour moi et je complété avec un test dans l'attente de mes fichiers sur de RSpec comme un petit rappel pour laisser tomber le initialiseur une fois a été mis à jour en rack.

describe ApplicationController do
  ...
  it "should not include the rack_hotfix.rb initializer after upgrading to rack 1.3.0"

end

Autres conseils

Voir:

https://github.com/jnicklas/capybara/issues/87 https://github.com/jnicklas/capybara/issues/243

pour une discussion sur la question. La résolution semble être que les deux Capybara et rack nécessaire pour changer certaines choses pour arriver à une bonne solution.

Si je comprends bien, Rack 1.3 et 1.0 Capybara devrait résoudre le problème. À l'heure actuelle cependant, Rails 3.0.8 nécessite encore rack ~> 1.2.1, ignorant rack 1.3, même si vous l'avez installé. Je pense donc que Rails (en particulier actionpack) devra améliorer sa dépendance d'avoir une solution propre.

Ajoutez ceci à un fichier dans features/support ou le mettre dans le fichier env.rb:

# Stop endless errors like
# ~/.rvm/gems/ruby-1.9.2-p0@global/gems/rack-1.2.1/lib/rack/utils.rb:16: 
# warning: regexp match /.../n against to UTF-8 string
$VERBOSE = nil

Cela supprime ces avertissements, mais je ne sais pas ce qui les provoque en premier lieu. Je les reçois, aussi

Il y a un petit bijou appelé « escape_utils » qui prend en charge ce problème. Voici le lien un article expliquant le problème.

Peut-être que vos scripts sont codés en ASCII ou un format différent UTF-8?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top