当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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