2009-10-21 6 views
2

J'utilise du concombre avec Selenium, FixtureReplacement et DatabaseCleaner. Bizarrement, mes données créées avec FixtureReplacement ne sont pas accessibles à partir de mes tests.FixtureReplacement avec du concombre

J'ai ajouté un propre environnement de rails pour le sélénium et j'utilise un propre profil pour mes fonctions au sélénium améliorées. Ma configuration de concombre pour le profil de sélénium est:

Webrat.configure do |config| 
    config.mode = :selenium 
    config.application_environment = :selenium 
end 

Cucumber::Rails::World.use_transactional_fixtures = false 

require "database_cleaner" 

# Clean the database once when starting 
DatabaseCleaner.clean_with :truncation 
DatabaseCleaner.strategy = :truncation 

Before do 
    DatabaseCleaner.start 
    include FixtureReplacement 
end 

After do 
    DatabaseCleaner.clean 
end 

# this is necessary to have webrat "wait_for" the response body to be available 
# when writing steps that match against the response body returned by selenium 
World(Webrat::Selenium::Matchers) 

FixtureReplacement fonctionne bien, je l'ai testé dans la console Rails.

Je me présente mes fonctions de sélénium avec:

RAILS_ENV=selenium cucumber -p selenium features/enhanced/test.feature 

Quelqu'un sait-il une solution à ce problème? Meilleures salutations

+0

Avez-vous essayé de concombre avec Watir? http://www.vimeo.com/2871256 –

+0

Vous dites FixtureReplacement fonctionne dans la console Rails, mais est-ce dans votre environnement de test ou dans votre environnement de sélénium. Ma première supposition serait que FixtureReplacement ne charge que dans le test, et non dans le sélénium. Mais je ne sais rien à propos de FixtureReplacement. – danivovich

+0

FixtureReplacement est un plugin Rails, il sera donc chargé dans tous les environnements. En outre, j'ai regardé son code source et il n'y avait aucune limitation à l'environnement de test. – brainfck

Répondre

1

Cela n'avait rien à voir avec les montages. Je pensais que je ne pouvais pas accéder à mes données, parce que je ne pouvais pas me connecter.

Les fixes suivants il: Cucumber + selenium fails randomly

1

Je me demande si vous utilisez Database Cleaner correctement? Dans mes env.rb, je l'utilise comme ceci:

Before do 
    require 'database_cleaner' 
    require 'database_cleaner/cucumber' 
    DatabaseCleaner.strategy = :truncation 
end 

Cela fonctionne pour moi lorsque vous utilisez Factory Girl.

+0

Cela ne fonctionne pas non plus pour moi. Pouvez-vous poster toute votre configuration de concombre? – brainfck

+0

BTW, j'ai changé pour Factory Girl. – brainfck

+0

Voici un point essentiel: http://gist.github.com/215924 En gros: * fonctions Exécuter dans le env test (perhapsnot une excellente idée) * Éteignez les appareils transactionnels * Configurer Webrat d'utiliser le sélénium (avec quelques options de configuration supplémentaires spécifiques à ma configuration) * Require Factory Girl (peut-être le bit qui vous manque?) * Définir le nettoyeur de base de données dans un crochet Avant. Espérons que cela aide, Ad. – Rodreegez

Questions connexes