2016-09-29 1 views
0

j'ai une tâche de râteau qui définit les variables d'environnementconcombre Rake Tâche réinitialisation des variables d'environnement

task circle_ci_parallel_tests: :environment do 
    ENV['PREPARE_TEST_DATA'] = 'true' 
    Rake::Task[:service_test_data_setup].execute 
     browser_group.compact.uniq.each do |browser_name| 
     next unless ENV['CIRCLE_NODE_INDEX'].to_i == group_index 
     ENV['BS_KEY_NAME'] = browser_name 
     ENV['TEST_ENV_NUMBER'] = group_index.to_s 
     ENV['BS_TYPE'] = browser_name 
     run_single 
     end 
    end 

J'ai alors une tâche de râteau enveloppé dans une méthode régulière

def run_single 
    Cucumber::Rake::Task.new(:run_features) do |task| 
     output = 'tmp/failed_scenarios.txt' 
     task.cucumber_opts = "features -t @leo --tags [email protected]_#{ENV['BS_TYPE']} --tags [email protected]_#{ENV['BS_TYPE']} -f rerun --out #{output}" 
    end 
    Rake::Task[:run_features].execute 
    end 

Quand je lance le râteau :: Tâche [circle_ci_parallel_tests] sur la ligne de commande La valeur ENV['BS_TYPE']} n'est pas définie à chaque fois, mais la première valeur est sélectionnée. Comment puis-je faire ramasser le ENV['BS_TYPE'] chaque fois que la méthode run_single est appelée?

Répondre

0

Vous pouvez essayer cette façon

Vous devez concate les chaînes aux variables environnementales.

task circle_ci_parallel_tests: :environment do 
    ENV['PREPARE_TEST_DATA'] = 'true' 
    ENV['BS_TYPE'] = '' 
    ENV['BS_KEY_NAME'] = '' 
    Rake::Task[:service_test_data_setup].execute 
     browser_group.compact.uniq.each do |browser_name| 
     next unless ENV['CIRCLE_NODE_INDEX'].to_i == group_index 
     ENV['BS_KEY_NAME'] += ", " + browser_name.to_s 
     ENV['TEST_ENV_NUMBER'] = group_index.to_s 
     ENV['BS_TYPE'] += ", " + browser_name.to_s 
     run_single 
     end 
    end 

Il établira ENV['BS_TYPE'] and ENV['BS_KEY_NAME'] est quelque chose comme browser1, browser2, browser3, ... prendre toutes ces chaînes de browser_group.compact.uniq tableau de navigateurs

+0

Cela ne fonctionne pas – user1875703