2016-02-06 1 views
0

J'ai créé le dossier tests, écrit mon premier test qui devrait ouvrir un navigateur, pointer vers une page et me connecter, puis aller à la page d'accueil.Tests fonctionnels Django pytest-sélénium

Test et échec, comme prévu, mais je ne vois pas pourquoi.

Le navigateur devrait être disponible, pytest-sélenium est installé par pip.

import pytest 

from django.contrib.auth.models import Group, Permission, User 
from django.test import TestCase, RequestFactory 

class CreaPageTest(TestCase): 
    def setUp(self): 
     self.factory = RequestFactory() 
    def test_homepage(self): 
    request = self.client.get('/new') 
    request.user = self.user 
    self.assertEqual(request.status_code, 200) 

    def test_login(self): 
    request = self.client.get('/per/login') 

    username_field = self.browser.find_element_by_name('username') 
    username_field.send_keys('peppa') 

    password_field = self.browser.find_element_by_name('password') 
    password_field.send_keys('pig') 
    password_field.send_keys(Keys.RETURN) 

    test_homepage() 


>  username_field = self.browser.find_element_by_name('username') 
E  AttributeError: 'CreaPageTest' object has no attribute 'browser' 

tests/test_ore_app_views.py:27: AttributeError 

Que manque-t-il? Tout conseil à des exemples de ce genre de test est vraiment apprécié.

Répondre

1

Vous devez configurer self.browser à l'intérieur de la fonction setUp. Il vous manque également une importation pour Keys. Le code devrait être comme ça.

import pytest 
from selenium import webdriver 
from selenium.webdriver.common.keys import Keys 
from django.contrib.auth.models import Group, Permission, User 
from django.test import TestCase, RequestFactory 

class CreaPageTest(TestCase): 
    def setUp(self): 
     self.factory = RequestFactory() 
     self.browser = webdriver.Firefox() 

Aussi s'il vous plaît se référer à la documentation, ici http://selenium-python.readthedocs.org/getting-started.html