Integration тесты, Selenium, Playwright, coverage, CI integration
Integration тесты проверяют взаимодействие между компонентами Django приложения.
💡 Правило: Пишите тесты которые имитируют поведение пользователя.
from django.test import LiveServerTestCase
from selenium import webdriver
class SeleniumTest(LiveServerTestCase):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.selenium = webdriver.Chrome()
@classmethod
def tearDownClass(cls):
cls.selenium.quit()
super().tearDownClass()
def test_login(self):
self.selenium.get(f'{self.live_server_url}/login/')
self.selenium.find_element(By.ID, 'id_username').send_keys('admin')
self.selenium.find_element(By.ID, 'id_password').send_keys('pass')
self.selenium.find_element(By.CSS_SELECTOR, 'button[type="submit"]').click()
self.assertIn('Logged in', self.selenium.page_source)from playwright.sync_api import sync_playwright
def test_with_playwright():
with sync_playwright() as p:
browser = p.chromium.launch()
page = browser.new_page()
page.goto('http://localhost:8000/')
page.click('#login')
browser.close()coverage run --source='.' manage.py test
coverage report
coverage html # HTML отчётВопросы ещё не добавлены
Вопросы для этой подтемы ещё не добавлены.