用法:
@test ex
@test f(args...) key=val ...
@test ex broken=true
@test ex skip=true
測試表達式 ex 的計算結果為 true 。如果是,則返回 Pass Result,如果是 false,則返回 Fail Result,如果無法評估,則返回 Error Result。
例子
julia> @test true
Test Passed
Expression: true
julia> @test [1, 2] + [2, 1] == [3, 3]
Test Passed
Expression: [1, 2] + [2, 1] == [3, 3]
Evaluated: [3, 3] == [3, 3]
@test f(args...) key=val... 形式等價於編寫 @test f(args..., key=val...),當表達式是使用中綴語法(例如近似比較)的調用時,它會很有用:
julia> @test π ≈ 3.14 atol=0.01
Test Passed
Expression: ≈(π, 3.14, atol = 0.01)
Evaluated: ≈(π, 3.14; atol = 0.01)
這相當於更醜的測試 @test ≈(π, 3.14, atol=0.01) 。提供多個表達式是錯誤的,除非第一個是調用表達式,其餘的是賦值 (k=v)。
您可以對 key=val 參數使用任何鍵,但 broken 和 skip 除外,它們在 @test 的上下文中具有特殊含義:
broken=cond表示應該通過但當前在cond==true時始終失敗的測試。測試表達式ex的計算結果是否為false或導致異常。如果是,則返回BrokenResult,如果表達式計算結果為true,則返回ErrorResult。常規@test ex在cond==false時進行評估。skip=cond將不應執行但應包含在測試摘要報告中的測試標記為Broken,當cond==true時。這對於間歇性失敗的測試或not-yet-implemented 函數的測試很有用。常規@test ex在cond==false時進行評估。
例子
julia> @test 2 + 2 ≈ 6 atol=1 broken=true
Test Broken
Expression: ≈(2 + 2, 6, atol = 1)
julia> @test 2 + 2 ≈ 5 atol=1 broken=false
Test Passed
Expression: ≈(2 + 2, 5, atol = 1)
Evaluated: ≈(4, 5; atol = 1)
julia> @test 2 + 2 == 5 skip=true
Test Broken
Skipped: 2 + 2 == 5
julia> @test 2 + 2 == 4 skip=false
Test Passed
Expression: 2 + 2 == 4
Evaluated: 4 == 4Julia 1.7
broken 和 skip 關鍵字參數至少需要 Julia 1.7。
相關用法
- Julia Test.@test_skip用法及代碼示例
- Julia Test.@test_throws用法及代碼示例
- Julia Test.@test_broken用法及代碼示例
- Julia Test.@test_deprecated用法及代碼示例
- Julia Test.@test_logs用法及代碼示例
- Julia Test.@testset用法及代碼示例
- Julia Threads.atomic_cas!用法及代碼示例
- Julia Threads.atomic_min!用法及代碼示例
- Julia Timer方法用法及代碼示例
- Julia Threads.atomic_xor!用法及代碼示例
- Julia Threads.atomic_and!用法及代碼示例
- Julia Threads.atomic_max!用法及代碼示例
- Julia Threads.atomic_or!用法及代碼示例
- Julia Threads.Atomic用法及代碼示例
- Julia Threads.atomic_sub!用法及代碼示例
- Julia Threads.atomic_nand!用法及代碼示例
- Julia Threads.atomic_xchg!用法及代碼示例
- Julia Threads.atomic_add!用法及代碼示例
- Julia splice!用法及代碼示例
- Julia @cfunction用法及代碼示例
- Julia LibGit2.count用法及代碼示例
- Julia LinearAlgebra.BLAS.dot用法及代碼示例
- Julia break用法及代碼示例
- Julia sizeof()用法及代碼示例
- Julia :<=用法及代碼示例
注:本文由純淨天空篩選整理自julialang.org 大神的英文原創作品 Test.@test — Macro。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。
