lune9
March 20, 2009, 11:13am
1
Bonjour
J’ai fait un fichier de test (avec selenium) pour tester un produit de
mon application. Etant donné que mon fichier de test est générique il
faudrait que je lui donne en parametre l’id du produit a tester.
Je ne sais pas si c’est possible
Si oui je ne vois pas comment. Je pensais a une syntaxe du genre rake
test:acceptance mon_ficher.rsel 1 mais non.
Si quelqu’un peut m’éclairer …
Merci d’avance !
lune9
March 20, 2009, 4:42pm
2
Je ne sais pas si c’est possible
Si oui je ne vois pas comment. Je pensais a une syntaxe du genre rake
test:acceptance mon_ficher.rsel 1 mais non.
Si quelqu’un peut m’éclairer …
Si tu ne trouves rien d’intégré dans la version de selenium que tu
utilises, tu peux te rabattre sur un passage de variable
d’environnement.
rake test:acceptance mon_fichier.rsel product_id=AB097123
puis dans mon_fichier.rsel
def get_mandatory_param(var_name)
value = ENV[var_name]
raise “This test requires #{var_name} env var to be set” if
value.blank?
value
end
product_id = get_mandatory_param(‘product_id’)
– Thibaut
lune9
March 23, 2009, 2:58pm
3
Merci, mais malheuresement, j’obtiens ce This test requires product_id
env var to be set ce qui signifie qu’il ne recupere pas la variable
d’environnement
Thibaut Barrère wrote:
Je ne sais pas si c’est possible
Si oui je ne vois pas comment. Je pensais a une syntaxe du genre rak
test:acceptance mon_ficher.rsel 1 mais non.
Si quelqu’un peut m’�clairer …
Si tu ne trouves rien d’int�gr� dans la version de selenium que tu
utilises, tu peux te rabattre sur un passage de variable
d’environnement.
rake test:acceptance mon_fichier.rsel product_id=AB097123
puis dans mon_fichier.rsel
def get_mandatory_param(var_name)
value = ENV[var_name]
raise “This test requires #{var_name} env var to be set” if
value.blank?
value
end
product_id = get_mandatory_param(‘product_id’)
– Thibaut
lune9
March 24, 2009, 10:59am
4
Le fichier rsel j’ai repris ton code pour tester
def get_mandatory_param(var_name)
value = ENV[var_name]
raise “This test requires #{var_name} env var to be set” if
value.blank?
value
end
product_id = get_mandatory_param(‘product_id’)
et la façon dont je l’invoque rake test:acceptance
test/selenium/auto_template.rsel product_id=1
lune9
March 24, 2009, 10:00am
5
Hello,
peux-tu nous recopier ta tâche rake, la façon dont tu l’invoques, et
peut être un extrait du fichier .rsel pour voir ce qui pourrait se
passer ?
– Thibaut
lune9
March 24, 2009, 5:01pm
6
Une solution pourrait être d’utiliser le couple Selenium-client +
Rspec…
Nicolas.
Le 20 mars 2009 11:13, Lune L. [email protected] a écrit :
lune9
March 24, 2009, 5:24pm
7
En cherchant sur github, j’arrive à la conclusion que tu utilises
Peut être peut y écrire via github à l’auteur pour lui poser la
question.
Sinon étudie le code source de plus près, en particulier:
$: << File.expand_path(File.dirname(__FILE__) + "/")
$: << File.expand_path(File.dirname(__FILE__) + "/../")
require 'paths'
require 'net/http'
require 'tempfile'
def c(var, default = nil) SeleniumOnRailsConfig.get var, default end
def c_b(var, default = nil) SeleniumOnRailsConfig.get(var, default) { yield } end
BROWSERS = c :browsers, {}
REUSE_EXISTING_SERVER = c :reuse_existing_server, true
START_SERVER = c :start_server, false #TODO can't get it to work reliably on Windows, perhaps it's just on my computer, but I leave it off by default for now
HOST = c :host, 'localhost'
PORTS = c(:port_start, 3000)..c(:port_end, 3005)
BASE_URL_PATH = c :base_url_path, '/'
TEST_RUNNER_URL = c :test_runner_url, '/selenium/TestRunner.html'
MAX_BROWSER_DURATION = c :max_browser_duration, 2*60
MULTI_WINDOW = c :multi_window, false
SERVER_COMMAND = c_b :server_command do
This file has been truncated. show original
Je pense qu’il doit y avoir moyen (comme dans Test::Unit) de propager
un peu d’environnement au .rsel.
– Thibaut