You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I found a strange issue with weaver around initialization... or at least that is what I think.
It is a bit involved but hopefully, I can provide enough info for someone to take a look.
// First, we need a base Suite with a bunch of helpers:traitFooBaseSuiteextendsIOSuite:overridefinalvalmaxParallelism:Int=1overridefinaltypeRes=FooResoverridefinalvalsharedResource:Resource[IO, Res] =???// Define helper method to reduce boilerplate:protecteddeffooTest(name: String)(check: Foo=>Expectations):Unit=
test(name) { foo =>IO(check(foo))
}
// Then we need an object that extends such base Suite:objectFooSpecextendsFooBaseSuite:// And use the helper method:
fooTest(name ="Testing foo") { foo =>
expect(...)
}
The tests will fail because Foo is already closed (or so I think).
There are a couple of ways to fix the issue:
Don't have a trait + object but just a single object
Remove the fooTest helper and replicate the boilerplate in each test
Make FooSpec a class which accepts an (unused)GlobalRead
Things that didn't work:
Using abstract class rather than trait
Moving fooTest from the trait(FooBaseSuite) to the object(FooSpec)
More info:
Scala3.3.1
weaver: 0.8.3
cats-effect: 3.5.1
sbt: 1.9.6
Java: GraalVM CE17.0.8
OS: Mac14.0
The text was updated successfully, but these errors were encountered:
Hey BalmungSan, thanks for reporting, but the information provided is not sufficient to reproduce (ie, I tried to replicate and couldn't), and insufficient to guess what's going on.
Any chance you could attempt to create a minimal reproduction ? (I appreciate it may not be easy).
Are you running the test from SBT in your terminal, or from your IDE ?
Yeah, I know I should have come with a reproducer, but I have been a little bit busy. I will try to create one ASAP.
Meanwhile, I can provide with you a couple more details.
I am running the tests directly from sbt, using integrationTest/test(yes, they are in its own module).
The resource I am running is a Docker container (using testcontainers-scala), which contains an HTTP app.
And the reason why I think it is being closed is because the test fails with an "empty response" error.
This issue was copied over from: disneystreaming/weaver-test#705
It was opened by: BalmungSan
I found a strange issue with weaver around initialization... or at least that is what I think.
It is a bit involved but hopefully, I can provide enough info for someone to take a look.
The tests will fail because
Foo
is already closed (or so I think).There are a couple of ways to fix the issue:
trait
+object
but just a singleobject
fooTest
helper and replicate the boilerplate in eachtest
FooSpec
aclass
which accepts an (unused)GlobalRead
Things that didn't work:
abstract class
rather thantrait
fooTest
from thetrait
(FooBaseSuite
) to theobject
(FooSpec
)More info:
3.3.1
0.8.3
3.5.1
1.9.6
17.0.8
14.0
The text was updated successfully, but these errors were encountered: