Tôi đang sử dụng LiveServerTestCase Django 1.4 để kiểm tra Selenium và đang gặp sự cố với phương thức lớp học setUpClass
. Theo như tôi hiểu MembershipTests.setUpClass
được chạy một lần trước khi thử nghiệm đơn vị được chạy.Django LiveServerTestCase: Người dùng được tạo trong phương thức setUpClass không có sẵn trong test_method?
Tôi đã đặt mã để thêm người dùng vào cơ sở dữ liệu trong MembershipTests.setUpClass
nhưng khi tôi chạy thử nghiệm MembershipTests.test_signup
không có người dùng nào được thêm vào cơ sở dữ liệu thử nghiệm. Tôi đang làm gì không chính xác? Tôi hy vọng người dùng tôi đã tạo trong setUpClass
sẽ có sẵn trên tất cả các thử nghiệm đơn vị.
Nếu tôi đặt mã người dùng tạo ra trong MembershipTests.setUp
và chạy MembershipTests.test_signup
tôi có thể thấy người dùng, nhưng không muốn hoạt động này trước mỗi bài kiểm tra đơn vị như setUp
là. Như bạn có thể thấy, tôi sử dụng lớp LiveServerTestCase tùy chỉnh để thêm chức năng cơ bản trong tất cả các thử nghiệm của tôi (test_utils.CustomLiveTestCase
). Tôi nghi ngờ điều này có liên quan đến vấn đề của tôi.
Xin cảm ơn trước.
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()
Bất kỳ ý tưởng nào, làm cách nào để tạo người dùng và sau đó đăng nhập vào bằng LiveServerTestCase? Tạo tài khoản trong thiết lập với cơ sở dữ liệu SQLite trong: bộ nhớ: không hoạt động, ngay cả khi tôi cam kết thủ công. – dotz