Ich verwende Django 1.4's LiveServerTestCase für Selenium Tests und habe Probleme mit der setUpClass
Klassenmethode. Soweit ich weiß, wird MembershipTests.setUpClass
einmal ausgeführt, bevor die Komponententests ausgeführt werden.Django LiveServerTestCase: Benutzer erstellt in in setUpClass-Methode nicht in test_method?
Ich habe Code, um einen Benutzer in die Datenbank in MembershipTests.setUpClass
hinzufügen, aber wenn ich den MembershipTests.test_signup
-Test ausführen, wurde kein Benutzer der Test-Datenbank hinzugefügt. Was mache ich falsch? Ich erwarte, dass der Benutzer, den ich in setUpClass
erstellt habe, über alle Komponententests verfügbar sein würde.
Wenn ich die Benutzererstellung Code in MembershipTests.setUp
setzen und laufe MembershipTests.test_signup
ich den Benutzer sehen kann, aber nicht will, diesen Lauf vor jedem Gerät zu testen, wie setUp
ist. Wie Sie sehen können, verwende ich eine benutzerdefinierte LiveServerTestCase-Klasse, um grundlegende Funktionalität für alle meine Tests hinzuzufügen (test_utils.CustomLiveTestCase
). Ich vermute, das hat etwas mit meinem Problem zu tun.
Vielen Dank im Voraus.
test_utils.py:
from selenium.webdriver.firefox.webdriver import WebDriver
from django.test import LiveServerTestCase
class CustomLiveTestCase(LiveServerTestCase):
@classmethod
def setUpClass(cls):
cls.wd = WebDriver()
super(CustomLiveTestCase, cls).setUpClass()
@classmethod
def tearDownClass(cls):
cls.wd.quit()
super(CustomLiveTestCase, cls).tearDownClass()
tests.py:
from django.contrib.auth.models import User
from django.test.utils import override_settings
from test_utils import CustomLiveTestCase
from test_constants import *
@override_settings(STRIPE_SECRET_KEY='xxx', STRIPE_PUBLISHABLE_KEY='xxx')
class MembershipTests(CustomLiveTestCase):
fixtures = [
'account_extras/fixtures/test_socialapp_data.json',
'membership/fixtures/basic/plan.json',
]
def setUp(self):
pass
@classmethod
def setUpClass(cls):
super(MembershipTests, cls).setUpClass()
user = User.objects.create_user(
TEST_USER_USERNAME,
TEST_USER_EMAIL,
TEST_USER_PASSWORD
)
def test_signup(self):
print "users: ", User.objects.all()
Irgendwelche Ideen, wie könnte ich einen Benutzer erstellen und dann mit LiveServerTestCase einloggen? Erstellen des Kontos in Setup mit SQLite-Datenbank in: Arbeitsspeicher: funktioniert nicht, auch wenn ich manuell festlege. – dotz