# Warn() vs @warn

**URL:** <https://discourse.julialang.org/t/warn-vs-warn/13579>\
**Category:** General Usage\
**Tags:** warning\
**Created:** [August 16, 2018, 4:54pm UTC](https://discourse.julialang.org/t/warn-vs-warn/13579 "2018-08-16T16:54:40Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![tlienart](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tlienart/32/7640_2.png) [@tlienart](https://discourse.julialang.org/u/tlienart)\
**Post date:** [August 16, 2018, 4:54pm UTC](https://discourse.julialang.org/t/warn-vs-warn/13579/1 "2018-08-16T16:54:40Z")

</div>

Hello,

I’m upgrading a package to 0.7 and I was prompted to use `@warn` instead of `warn`. I did but got faced with an error which I suspect is due to a poor understanding of macros and string interpolation. Here’s a simplified MWE:

```julia
using Test

function foo(x)
    if x<1
        warn("Got $x expected something >= 1, returning 0")
        return 0
    else
        x
    end
end

foo(-1) # deprecation warning + throws the correct warning message "Got -1 ..."
@test_warn "Got -1 expected something >= 1, returning 0" foo(-1) # test passes

```

Using `@warn`:

```julia
function bar(x)
    if x<1
        @warn "Got $x expected something >= 1, returning 0"
        return 0
    else
        x
    end
end
bar(-1) # shows the right warning message
@test_warn "Got -1 expected something >= 1, returning 0" bar(-1) # test fails

```

With:

```julia-auto
Test Failed at /Users/osx/buildbot/slave/package_osx64/build/usr/share/julia/stdlib/v0.7/Test/src/Test.jl:605
  Expression: contains_warn(read(fname, String), $(Expr(:escape, "Got x expected something >= 1, returning 0")))

```

## Solution

Thanks to Kristoffer’s redirect to [this Julia issue](https://github.com/JuliaLang/julia/issues/28549), this is how I ended up fixing it (using `@test_logs` instead of `@test_warn` which should be deprecated)

```julia
@test_logs (:warn, "Got -1 expected something >= 1, returning 0") bar(-1)

```

---

<div class="post-metadata">

**Author:** ![kristoffer.carlsson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kristoffer.carlsson/32/22_2.png) [@kristoffer.carlsson](https://discourse.julialang.org/u/kristoffer.carlsson)\
**Post date:** [August 16, 2018, 4:55pm UTC](https://discourse.julialang.org/t/warn-vs-warn/13579/2 "2018-08-16T16:55:54Z")

</div>

See [https://github.com/JuliaLang/julia/issues/28549](https://github.com/JuliaLang/julia/issues/28549)
