Ich verwende Selenium
zusammen mit StaticLiveServerTestCase
, um eine Django-App zu testen.Djangos StaticLiveServerTestCase-Test läuft alleine, aber scheitert, wenn gruppiert
Der Test ist wie folgt:
class e2eTest(StaticLiveServerTestCase):
@classmethod
def setUpClass(cls):
super(IntegrationTest, cls).setUpClass()
cls.data = load_data()
cls.driver = webdriver.PhantomJS("path_to_phantomjs")
cls.common = common(cls.driver, cls.live_server_url + settings.STATIC_URL + 'index.html')
def setUp(self):
for data in self.data:
data.refresh_from_db()
def test_login_1(self):
self.common.login('admin')
def test_login_2(self):
self.common.login('admin')
load_data()
verwendet wird Testdatenbank zu füllen (mit apps models
).
Wenn ich laufen:
1- python manage.py test login.tests
: die Tests beginnen mit test_login_1
. test_login_1
erfolgreich und test_login_2
fehlgeschlagen.
2- python manage.py test login.tests --reverse
: Die Tests beginnen mit test_login_2
. test_login_2
erfolgreich und test_login_1
fehlgeschlagen.
Ich glaube, es hat etwas mit Daten zu tun, die nach jedem Test gelöscht werden. P.S. Bei Verwendung des gleichen Ansatzes unter Verwendung von django.test.TestCase
& setUpTestData
und Djangos Test-Client funktioniert es (Senden der Daten an die Login-API direkt).
Kann ich etwas wie setUpTestData
von django.test.TestCase
haben?
EDIT 1
@luke_aus: load_data()
Methoden enthalten die Testdatenbank zu füllen:
from my_app import User, priceModel
user = User(username='test').set_password('test')
user.save()
priceModel = priceModel(name='test')
priceModel.save()
....
@knbk: Ich verwende Django 1.9. Der Test schlägt immer noch nach dem Passieren --parallel=1
.
Vielen Dank für Ihr Feedback!
Was ist in load_data()? –
Wenn Sie Django 1.9+ verwenden: Scheitert es immer noch, wenn Sie '--parallel = 1' übergeben? – knbk