當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。