| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- import pytest
- from pathlib import Path
- from DrissionPage import ChromiumPage
- from mylib.drission_page import load_chrome_from_ini
- from mylib.search_manager import SearchManager
- # 使用 fixture 来初始化浏览器和 SearchManager
- @pytest.fixture(scope="module")
- def page():
- return load_chrome_from_ini()
- @pytest.fixture(scope="module")
- def search_manager(page):
- return SearchManager(page)
- # 参数化测试用例
- @pytest.mark.parametrize("file_name, expected_result", [
- ("只有一页.html", True),
- ("最后一页.html", True),
- ("查询不到内容 (2).html", True),
- ("查询不到内容.html", True),
- ("正常的搜索结果.html", False),
- ("流量异常.html", pytest.raises(ValueError)),
- ])
- def test_check_last_page(search_manager, file_name, expected_result):
- test_dir = Path(r'K:\code\upwork\zhang_crawl_bio\output\debug')
- file_path = test_dir / file_name
-
- print(f"Testing file: {file_name}") # 打印当前测试的文件名
-
- if isinstance(expected_result, type(pytest.raises(ValueError))):
- print(f"Expecting ValueError for file: {file_name}") # 打印预期会抛出异常的文件
- with expected_result:
- search_manager.page.get(file_path)
- search_manager.check_last_page()
- else:
- search_manager.page.get(file_path)
- result = search_manager.check_last_page()
- print(f"Result for {file_name}: {result}") # 打印实际的测试结果
- assert result == expected_result, f"Expected {expected_result}, but got {result} for {file_name}"
|