当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Julia Test.@testset用法及代码示例


用法:

@testset [CustomTestSet] [option=val  ...] ["description"] begin ... end
@testset [CustomTestSet] [option=val  ...] ["description $v"] for v in (...) ... end
@testset [CustomTestSet] [option=val  ...] ["description $v, $w"] for v in (...), w in (...) ... end

如果提供了for 循环,则启动一个新的测试集或多个测试集。

如果没有给出自定义测试集类型,则默认创建 DefaultTestSetDefaultTestSet 记录所有结果,如果有任何 FailError ,则在顶级(非嵌套)测试集的末尾抛出异常,以及测试结果的摘要.

可以给出任何自定义测试集类型(AbstractTestSet 的子类型),它也将用于任何嵌套的 @testset 调用。给定的选项仅适用于给出它们的测试集。默认测试集类型接受 verbose 布尔选项:如果 true ,即使嵌套测试集全部通过,也会显示嵌套测试集的结果摘要(默认为 false )。

说明字符串接受来自循环索引的插值。如果没有提供说明,则基于变量构建。

默认情况下,@testset 宏将返回测试集对象本身,尽管可以在其他测试集类型中自定义此行为。如果使用for 循环,则宏收集并返回finish 方法的返回值列表,默认情况下,该方法将返回每次迭代中使用的测试集对象列表。

在执行 @testset 的主体之前,有一个对 Random.seed!(seed) 的隐式调用,其中 seed 是全局 RNG 的当前种子。而且,在body执行之后,全局RNG的状态恢复到@testset之前的状态。这是为了在失败的情况下简化再现性,并允许无缝重新安排 @testset s,而不管它们对全局 RNG 状态的副作用如何。

例子

julia> @testset "trigonometric identities" begin
           θ = 2/3*π
           @test sin(-θ) ≈ -sin(θ)
           @test cos(-θ) ≈ cos(θ)
           @test sin(2θ) ≈ 2*sin(θ)*cos(θ)
           @test cos(2θ) ≈ cos(θ)^2 - sin(θ)^2
       end;
Test Summary:            | Pass  Total
trigonometric identities |    4      4

相关用法


注:本文由纯净天空筛选整理自julialang.org 大神的英文原创作品 Test.@testset — Macro。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。