八、集成文档测试

1、集成doctest模块

doctestpython内置的一个标准库,它可以查找代码中类似交互式会话形式的注释,并检查它们是否正确;

(1)默认情况下,pytest会自动收集所有名称匹配test*.txt规则的文件,并调用doctest执行它们;doctest文件的默认编码是UTF-8,你可以在pytest.ini中使用doctest_encoding选项指定新的编码;

(2)通过编写文档字符串

--doctest-modules会查找所有名称匹配*.py的文件,收集文档字符串中类似交互式会话形式的注释,并把每一个文档字符串作为一个用例来执行,所以上面执行了两个测试,其中一个是文档测试;

如果想让pytest --doctest-modules正确收集到相关注释,需满足以下条件:

  • 文件名称符合*.py规则,但无需满足test_*.py或者*_test.py规则;
  • 文档字符串中的注释必须是类似python交互式会话形式的注释;

也可在pytest.ini汇总配置--doctest-modules 而不用每次执行时添加--doctest-modules参数 项

扫描二维码关注公众号,回复: 10129088 查看本文章

(3)指定额外的项

2、失败时继续执行

默认情况下,对于一个给定的文档测试,pytest在遇到第一个失败点时退出执行;但是,可以通过--doctest-continue-on-failure命令行选项,让其继续执行;

3、指定输出格式

文档测试失败时,可以通过以下方式更改测试输出的格式:

  • pytest --doctest-modules --doctest-report none
  • pytest --doctest-modules --doctest-report udiff
  • pytest --doctest-modules --doctest-report cdiff
  • pytest --doctest-modules --doctest-report ndiff
  • pytest --doctest-modules --doctest-report only_first_failure

4、文档测试中使用fixture

通过getfixture可以让在文档字符串中使用fixture

5、文档测试命名空间

doctest_namespace fixture可以用于向运行doctest测试的命名空间中注入一些信息,它是一个标准的字典对象;

6、跳过文档测试

通过pytest.skip跳过文档测试;

猜你喜欢

转载自www.cnblogs.com/Tester-Chenmo/p/12553511.html