Я хочу написать несколько тестов для веб-скребка. Я хочу использовать множество тестовых веб-страниц, но не знаю точно, как заставить нос (или другую платформу модульного тестирования) делать то, что мне нужно, без огромного количества дублирующегося кода.
Моя проблема в том, что я хочу протестировать много разных страниц, и я не уверен, как это сделать, используя нос. Это примерно то, что я хочу сделать:
class TestPage(object):
def setup(self):
with open('test_data/page.html', 'r') as f:
html = f.read()
self.scraper = Scraper(html)
Это было бы хорошо, если бы единственной страницей, которую я хотел проверить, был "page.html". Но у меня есть сотни страниц для тестирования. Я мог бы продублировать класс и каждый раз менять как имя класса, так и имя файла пути, но это, очевидно, было бы смешно.
Я думал о настройке кода для создания отдельных объектов Scraper для каждой страницы и сохранения их в списке в тестовом объекте. Тогда я мог бы заставить методы испытаний работать с каждым объектом Scraper. Но я думаю, что у меня возникнут проблемы с изоляцией каждого теста и получением отдельных сообщений из носа.
Я также пытался создать подкласс базового тестового класса и передать путь к init , но это создает проблемы для носа.
Буду признателен за любые советы о том, как решить эту проблему, используя нос, другой подход или любое чтение, которое может быть полезным.