J'ai vu beaucoup de questions sur les variables globales, mais pour une raison ou pour une autre, je n'arrive toujours pas à faire fonctionner la mienne.Variable globale Python non définie - déclarée à l'intérieur de la classe
Voici mon scénario: j'ai mes cas de test individuels et un script python séparé qui inclut différentes fonctions pour les différents messages d'erreur que vous pouvez obtenir dans l'application que je suis en train de tester. Si l'une des validations échoue, je souhaite que la fonction incrémente une variable d'échec, puis le script de test principal vérifie s'il s'agit d'une réussite ou d'échec.
class ErrorValidations:
failures = 0
def CheckforError1(driver):
global failures
try:
if error1.is_displayed():
failures += 1
def CheckforError2(driver):
global failures
try:
if error2.is_displayed():
failures += 1
def CheckforError3(driver):
global failures
try:
if error3.is_displayed():
failures += 1
Ceci est un exemple très édité où les validations se habituent:
from functionslist import ErrorValidations
def test(driver, browser, test_state):
_modules = driver.find_elements_by_xpath('//div[@class="navlink"]')
for i in _modules:
i.click()
ErrorValidations.CheckforError1(driver)
ErrorValidations.CheckforError2(driver)
ErrorValidations.CheckforError3(driver)
if ErrorValidations.failures > 0:
driver.report.AppendToReport(i.text, "The " + i.text + "page was not able to load without errors.", "fail", "")
else:
driver.report.AppendToReport(i.text, "The " + i.text + "page was able to load without errors.", "pass", "")
Le test n'est pas incrémenter correctement les échecs variables et je reçois l'erreur: « échecs » nom n'est pas défini, mais je ne suis pas sûr où d'autre pour le définir.
Veuillez corriger l'indentation. Est-ce que tout cela est dans une classe ou juste la variable des échecs? Il n'est pas clair à partir de votre article – Dan
Si je lis le premier extrait de code à droite, les échecs ne sont pas une variable globale mais une variable de classe. https://docs.python.org/2/tutorial/classes.html – intrepidhero
Indentation mise à jour. – tinneko