用法:
@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
或導致異常。如果是,則返回Broken
Result
,如果表達式計算結果為true
,則返回Error
Result
。常規@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 == 4
Julia 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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。