TestReport

TestReport["file"]

给出一份文件中的测试结果报告.

TestReport[{test1,test2,}]

给出 testi 结果的报告.

TestReport[{report1,report2,}]

通过合并所有测试报告 reporti 给出统一的报告.

更多信息和选项

  • TestReport 返回 TestReportObject.
  • TestReport 处理使用测试笔记本框架的普通文本 Wolfram 语言文件和笔记本.
  • TestReport 只运行结果为 "NotEvaluated" 的测试,而会跳过已经评估过的测试.
  • TestReport 有如下选项:
  • HandlerFunctions <||>句柄函数
    HandlerFunctionsKeys Automatic向句柄函数提供哪些参数
    MemoryConstraint Infinity每次测试允许使用的内存(字节)
    ProgressReporting $ProgressReporting是否报告进度
    SameTest SameQ用于比较实际和预期输出的函数
    TestEvaluationFunction TestEvaluate计算所创建测试的函数
    TimeConstraint Infinity每次测试允许使用的时间(秒)
  • 系统也支持 TestReport[File["file"]].
  • TestReport 的执行过程中,会产生以下事件:
  • "FileStarted"测试文件已开始
    "FileCompleted"测试文件已完成
    "ReportStarted"测试报告已开始
    "ReportCompleted"测试报告已完成
    "RuntimeFailure"遇到运行时故障
    "TestCreated"测试已创建
    "TestEvaluated"测试已运算
  • 根据规范 HandlerFunctions-><|,"eventi"->fi,|>,每当生成 eventi 时,将运算 fi[assoc]. assoc 中的元素具有由 HandlerFunctionsKeys 的设置指定的键.
  • HandlerFunctionsKeys 指定的可能键包括:
  • "EventName"处理的事件名称
    "EventID"事件的唯一标识符
    "Failure"与事件相关联的故障对象
    "FailureType"与测试相关联的故障类型
    "Outcome"与测试相关联的结果
    "TestFileName"与事件相关联的测试文件名
    "TestObject"与事件相关联的测试对象
    "Title"测试报告的名称
  • TestReport 设置 $TestFileName 为测试运行的文件名.
  • CreateNotebook["Testing"] 打开一个空白的笔记本,设置为使用测试框架(Testing Notebook framework).

范例

打开所有单元关闭所有单元

基本范例  (2)

运行一个 TestObject 列表:

运行笔记本中的例子作为测试:

提取失败测试的信息并在 TabView 中呈现:

将现有的 TestReportObject 与新的报告合并:

范围  (1)

基本用途  (1)

运行一系列测试:

TestReportObject 的属性:

个别测试结果的列表:

比较预期的和实际的测试结果的不同之处:

选项  (10)

HandlerFunctions  (1)

使用 HandlerFunctions 记录 TestReport 执行过程中发生的测试事件:

使用特殊键 "UnhandledEvent" 记录所有事件:

HandlerFunctionsKeys  (1)

使用 HandlerFunctionsKeys 来选择在使用 HandlerFunctions 时关注的键:

如果某事件不能提供你所要求的密钥,则其不会出现在 Association 中:

MemoryConstraint  (2)

对每次测试应用一个内存约束:

特定的 TestCreate 选项覆盖在 TestReport 层面上设置的选项:

ProgressReporting  (1)

长时间测试运行会自动显示进度报告:

使用选项 ProgressReporting 关闭该功能:

如要在全局范围内禁用进度报告,简单的方法是覆盖 $ProgressReporting

SameTest  (2)

SameTest 应用于给定测试:

特定的 TestCreate 选项会覆盖在 TestReport 层面上设置的选项:

TestEvaluationFunction  (1)

打印笔记本中的所有测试,而不对其进行运算:

在运算前将所有测试打印在笔记本上,然后进行运算:

TimeConstraint  (2)

对所有给定的测试应用时间约束:

特定的 TestCreate 选项会覆盖在 TestReport 层面设置的选项:

应用  (1)

同时运行单个测试和测试文件的列表:

再次使用 TestReport 将现有的 TestReportObject 合并为一个新的报告:

使用 TestReport 合并多个 TestReportObject 实例时,重复的测试将自动从报告中删除:

使用属性 "ResultsByTestFileName" 可将同一文件的测试分为一组:

属性和关系  (2)

HandlerFunctions 中使用 ThrowCatch,在测试失败时停止测试运行:

你也可以在 TestEvaluationFunction 中使用 ThrowCatch

HandlerFunctions 中使用 ReapSow 以收集所有事件名称:

可能存在的问题  (2)

没有测试的 TestReport 会被判定为成功:

TestReport 将执行并收集独特的测试一次:

为了多次执行相同的测试,需要多次创建测试:

Wolfram Research (2014),TestReport,Wolfram 语言函数,https://reference.wolfram.com/language/ref/TestReport.html (更新于 2023 年).

文本

Wolfram Research (2014),TestReport,Wolfram 语言函数,https://reference.wolfram.com/language/ref/TestReport.html (更新于 2023 年).

CMS

Wolfram 语言. 2014. "TestReport." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2023. https://reference.wolfram.com/language/ref/TestReport.html.

APA

Wolfram 语言. (2014). TestReport. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/TestReport.html 年

BibTeX

@misc{reference.wolfram_2024_testreport, author="Wolfram Research", title="{TestReport}", year="2023", howpublished="\url{https://reference.wolfram.com/language/ref/TestReport.html}", note=[Accessed: 17-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_testreport, organization={Wolfram Research}, title={TestReport}, year={2023}, url={https://reference.wolfram.com/language/ref/TestReport.html}, note=[Accessed: 17-November-2024 ]}