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