使用 pytest,我尝试测试像树一样的分层场景。
让我们以文档结构为例:
Document --- Chapter --- Paragraph
1 n 1 n
当文档包含多个章节时;一章包含多个段落。
当开始测试新文档时,需要运行一些设置代码;当新的章节开始时,需要运行一些其他设置代码;段落也一样。
写成伪代码:
for doc in documents:
setup_doc(doc)
for chapter in doc.chapters:
setup_chapter(chapter)
for paragraph in chapter.paragraphs:
setup_paragraph(paragraph)
test_it(doc, chapter, paragraph)
teardown_paragraph(paragraph)
teardown_chapter(chapter)
teardown_doc(doc)
如果我们有以下数据:
Document Alpha
chapter A
Paragraph A1
Paragraph A2
chapter B
Paragraph B1
我希望收集的测试用例是:
test_it[Alpha, A, A1]
test_it[Alpha, A, A2]
test_it[Alpha, B, B1]
我尝试了 pytest_generate_tests、类场景、固定装置和参数化测试函数的不同组合,但未能实现这一点。
任何指示将不胜感激。