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


Julia Test.@test用法及代碼示例


用法:

@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 參數使用任何鍵,但 brokenskip 除外,它們在 @test 的上下文中具有特殊含義:

  • broken=cond 表示應該通過但當前在 cond==true 時始終失敗的測試。測試表達式 ex 的計算結果是否為 false 或導致異常。如果是,則返回 Broken Result,如果表達式計算結果為 true,則返回 Error Result。常規 @test excond==false 時進行評估。
  • skip=cond 將不應執行但應包含在測試摘要報告中的測試標記為 Broken ,當 cond==true 時。這對於間歇性失敗的測試或not-yet-implemented 函數的測試很有用。常規 @test excond==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

brokenskip 關鍵字參數至少需要 Julia 1.7。

相關用法


注:本文由純淨天空篩選整理自julialang.org 大神的英文原創作品 Test.@test — Macro。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。