用法:
@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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。
