Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

impr: CallerInfo should print full paths to the terminal #1201

Merged
merged 2 commits into from Jun 29, 2022

Conversation

stdedos
Copy link
Contributor

@stdedos stdedos commented Jun 9, 2022

I am proposing this simple change, which changes this output

--- FAIL: TestABC (0.00s)
    --- FAIL: TestABC/C (0.00s)
        6_test.go:258:
            	Error Trace:	6_test.go:258
            	            				6_test.go:748
            	Error:      	Not equal:
...

to this:

--- FAIL: TestABC (0.00s)
    --- FAIL: TestABC/C (0.00s)
        /0/1/2/3/4/5/6_test.go:258:
            	Error Trace:	/0/1/2/3/4/5/6_test.go:258
            	            				/0/1/2/3/4/5/6_test.go:748
            	Error:      	Not equal:
...

With the latter output, it is much more straightforward to find the file
you are looking for, even though in the displayed case, the file is the same.

However, for VSCodium, the case is a little more helpful, since VSCodium's
terminal is smart enough to recognize the output, and make links out of that output.

Signed-off-by: Stavros Ntentos 133706+stdedos@users.noreply.github.com

Summary

Changes

Motivation

Related issues

@stdedos stdedos marked this pull request as draft June 9, 2022 10:58
@boyan-soubachov
Copy link
Collaborator

boyan-soubachov commented Jun 20, 2022

Whilst I agree that there is utility in having the absolute path, I would imagine that it can get pretty unwieldy for human consumption when using real-life paths rather than simplified, 1-character example paths.

Could you paste some example output of this code from some of your real, in-use paths for repos?

I'm of the opinion that the testify output should prioritise human readability above all-else. After all, unit-test outputs are only really valuable when a human needs to look at them because something didn't pass?

@stdedos
Copy link
Contributor Author

stdedos commented Jun 21, 2022

Whilst I agree that there is utility in having the absolute path, I would imagine that it can get pretty unwieldy for human consumption when using real-life paths rather than simplified, 1-character example paths.

I am not sure what "1-character example paths" would mean. Are you talking about those Java "obsfucated" class paths, or that zsh /h/u/d/p/ that can autocomplete to /home/u/Documents/projects/ (assuming unique)? 😕

Because right now, I don't see a "1-character", I see basenames

Could you paste some example output of this code from some of your real, in-use paths for repos?

Sadly, no. The closest I can give out as output is:

--- FAIL: TestTest (0.00s)
    /home/u/Documents/ACNTCYh/qVFPNO|mLHmvykAP/DvRISuYAly/IqJCXPTylA_test.go:254: 
        	Error Trace:	/home/u/Documents/ACNTCYh/qVFPNO|mLHmvykAP/DvRISuYAly/IqJCXPTylA_test.go:254
        	            				/home/u/Documents/ACNTCYh/qVFPNO|mLHmvykAP/DvRISuYAly/IqJCXPTylA_test.go:90
        	Error:      	Not equal: 
        	            	expected: ...
        	            	actual  : ...
        	            	
        	            	Diff:
        	            	--- Expected
        	            	+++ Actual
        	            	...
        	Test:       	TestTest

while "I'd be satisfied" with only one path, it can be that there are different files involved, so the need to jump to files might noe be the very first one

I'm of the opinion that the testify output should prioritise human readability above all-else. After all, unit-test outputs are only really valuable when a human needs to look at them because something didn't pass?

It is my humble opinion that leveraging UX given by some editor, improves the human interaction with the test results. Maybe readability "is deteriorating" when reviewing results from a CI (paths don't match, e.g. /build/ci/test/qVFPNO|mLHmvykAP/DvRISuYAly/IqJCXPTylA_test.go:90).
In that case I guess then the user can simply strip the non-project path, copy it and still navigate with her editor with a simple "Go to File" command; VSCodium, Sublime, IntelliJ all support being given "part of a path and a line number", and navigate to a file precisely.

@boyan-soubachov
Copy link
Collaborator

I am not sure what "1-character example paths" would mean. Are you talking about those Java "obsfucated" class paths, or that zsh /h/u/d/p/ that can autocomplete to /home/u/Documents/projects/ (assuming unique)? 😕

I meant the /0/1/2/3/4/5/6_test.go:258:

Sadly, no. The closest I can give out as output is:

--- FAIL: TestTest (0.00s)
    /home/u/Documents/ACNTCYh/qVFPNO|mLHmvykAP/DvRISuYAly/IqJCXPTylA_test.go:254: 
        	Error Trace:	/home/u/Documents/ACNTCYh/qVFPNO|mLHmvykAP/DvRISuYAly/IqJCXPTylA_test.go:254
        	            				/home/u/Documents/ACNTCYh/qVFPNO|mLHmvykAP/DvRISuYAly/IqJCXPTylA_test.go:90
        	Error:      	Not equal: 
        	            	expected: ...
        	            	actual  : ...
        	            	
        	            	Diff:
        	            	--- Expected
        	            	+++ Actual
        	            	...
        	Test:       	TestTest

while "I'd be satisfied" with only one path, it can be that there are different files involved, so the need to jump to files might noe be the very first one

Yup, this is the kind of example I meant. Given that default console widths tend to be 80 characters (not saying that's right or wrong, just the status quo), all the wrapping would make it a pretty confusing & messy test output.

It is my humble opinion that leveraging UX given by some editor, improves the human interaction with the test results. Maybe readability "is deteriorating" when reviewing results from a CI (paths don't match, e.g. /build/ci/test/qVFPNO|mLHmvykAP/DvRISuYAly/IqJCXPTylA_test.go:90). In that case I guess then the user can simply strip the non-project path, copy it and still navigate with her editor with a simple "Go to File" command; VSCodium, Sublime, IntelliJ all support being given "part of a path and a line number", and navigate to a file precisely.

Yup, though I'd then argue the inverse that if the user can easily navigate with an IDE using part of the path (usually the actual file name), why not just leave the absolute path out and have that as the use case 😆 . We can make the same argument in circles.

The only thing I feel strongly about is that given that popularity of the repo, it's inevitable that some (but not insignificant) percentage of users inevitably rely on the current output format (Hyrum's law), the problem is that even if the percentage is small, it still means thousands to tens of thousands of users.

I'm inclined to keep the current format unless there's a large amount of users who are demanding this change :)

@stdedos
Copy link
Contributor Author

stdedos commented Jun 21, 2022

Yup, this is the kind of example I meant. Given that default console widths tend to be 80 characters (not saying that's right or wrong, just the status quo), all the wrapping would make it a pretty confusing & messy test output.

While I don't think it's the most eloquent way to put it, the "gist" of https://www.theregister.com/2020/06/01/linux_5_7/ seems to be correct IMHO

Also, pls note that:

        	Error Trace:	/home/u/Documents/ACNTCYh/qVFPNO|mLHmvykAP/DvRISuYAly/IqJCXPTylA_test.go:254
        	            				/home/u/Documents/ACNTCYh/qVFPNO|mLHmvykAP/DvRISuYAly/IqJCXPTylA_test.go:90

the second line has so many unnecessary tabs (3) in my opinion; I don't get why.
"Otherwise", my change "comfortably fits 100 chars" (YMMV ofc), so, I cannot call this "pretty confusing" 😕

why not just leave the absolute path out and have that as the use case 😆 . We can make the same argument in circles.

Because VSCodium is "actively not smart" to do that with the terminal output; however, it can "infer" it with full paths and give a faster UX.

Yup, though I'd then argue the inverse that if the user can easily navigate with an IDE using part of the path (usually the actual file name), why not just leave the absolute path out and have that as the use case 😆 . We can make the same argument in circles.

The only thing I feel strongly about is that given that popularity of the repo, it's inevitable that some (but not insignificant) percentage of users inevitably rely on the current output format (Hyrum's law), the problem is that even if the percentage is small, it still means thousands to tens of thousands of users.

I'm inclined to keep the current format unless there's a large amount of users who are demanding this change :)

Thank you for invalidating my argument with a circular argument 😅 🤣 That was awesome!!
Also thank you for the reading material 😍

I agree with your thoughts - so, let's break this down:

  1. Assuming that everyone wants this, is this review otherwise "ready"? If so, I can "make it a real review".
  2. Assuming that this review is ready to be merged (apart from maybe future conflicts), should we leave this open indefinitely for the community to review it?
    I guess a simple 👍 👎 (and any other reaction people want, but mainly these too), until the scales tip enough?
    I don't think there needs to be some big fuss to be done, but not having enough fuss means we won't get "a verdict" very quickly

I meant the /0/1/2/3/4/5/6_test.go:258:

PS: Fun Fact: It was the fastest way to anonymize the path with Sublime and the plugins I use 😅 So apologies for being "misleading"

@boyan-soubachov
Copy link
Collaborator

boyan-soubachov commented Jun 21, 2022

Assuming that this review is ready to be merged (apart from maybe future conflicts), should we leave this open indefinitely for the community to review it?
I guess a simple 👍 👎 (and any other reaction people want, but mainly these too), until the scales tip enough?
I don't think there needs to be some big fuss to be done, but not having enough fuss means we won't get "a verdict" very quickly

I'm with you, no need to make a big deal of it. 👍 / 👎 is a great way to get votes for or against, the main problem is getting interested people looking at it. In the grand scheme of things, it's still a small problem. We can leave this open for a while and see what kind of attention it gets from the community but I suspect the outcome will be single-digit voting numbers.

In the mean time, maybe we should both think of 1 strong argument/reason for each approach and discuss?

@stdedos
Copy link
Contributor Author

stdedos commented Jun 27, 2022

My 👍 argument goes like:

  1. VSCodium recognizes it, so I love the Ctrl+Click (YMMV) accelerator

Your 👎 argument (and maybe I could agree too) is:

  1. Too much info/text on the terminal

I get that argument; however, already my codebase has 2000+ test cases (and permutations).
If I get a "fail" at the end, it's anyway not clear what's happening. I doubt that the "extra path" would be "more than 5% worse output" for a medium-to-large repo.

Ofc, for a small repo (<100 tests), maybe indeed "quality is worsening" (but I cannot gauge it from my POV)

@boyan-soubachov
Copy link
Collaborator

My 👍 argument goes like:

1. VSCodium recognizes it, so I love the Ctrl+Click (YMMV) accelerator

Your 👎 argument (and maybe I could agree too) is:

1. Too much info/text on the terminal

I get that argument; however, already my codebase has 2000+ test cases (and permutations). If I get a "fail" at the end, it's anyway not clear what's happening. I doubt that the "extra path" would be "more than 5% worse output" for a medium-to-large repo.

Ofc, for a small repo (<100 tests), maybe indeed "quality is worsening" (but I cannot gauge it from my POV)

Had a chance to think about this more today. I'm actually leaning towards your side and I think your argument makes more sense.

If we fix the PR and get all tests to pass, maybe we could merge it into master and let it soak a bit before cutting a new release?

@stdedos
Copy link
Contributor Author

stdedos commented Jun 27, 2022

Had a chance to think about this more today. I'm actually leaning towards your side and I think your argument makes more sense.

I have a weird question... did I break them? 😊 and how?

I am trying to dig down what's what, but I cannot get very far 😢

@boyan-soubachov
Copy link
Collaborator

I have a weird question... did I break them? 😊 and how?

Nop, just thinking about it, more often than not it makes more sense to just cmd/ctrl+click on the filename that's wrong to get to the failed test.

Jest follows this approach and it seems to work well.

I am trying to dig down what's what, but I cannot get very far 😢

Have a look at the CI output or run the tests locally. Make sure to pull latest master

@stdedos
Copy link
Contributor Author

stdedos commented Jun 27, 2022

Have a look at the CI output or run the tests locally. Make sure to pull latest master

I tried looking at the CI job. My workflow with go (or altogether familiarity with the language) is not that big enough.
"I don't think it's going to make much difference" if I do the same things locally, "for me, the output is already messy and misleading" comparing e.g. to python/pytest (my cup of tea).

I'll try to replay my work on top of master and see if they "magically" disappear 😕

@stdedos stdedos marked this pull request as ready for review June 27, 2022 12:44
@boyan-soubachov
Copy link
Collaborator

boyan-soubachov commented Jun 28, 2022

If you merge master into your branch and run go test -v -race ./... you should have all the test files executed.

Stavros Ntentos added 2 commits June 29, 2022 08:19
I am proposing this simple change, which changes this output
```
--- FAIL: TestABC (0.00s)
    --- FAIL: TestABC/C (0.00s)
        /this/is/a/path/to/file_test.go:258:
            	Error Trace:	file_test.go:258
            	            				file_test.go:748
            	Error:      	Not equal:
...
```
to this:
```
--- FAIL: TestABC (0.00s)
    --- FAIL: TestABC/C (0.00s)
        /this/is/a/path/to/file_test.go:258:
            	Error Trace:	/this/is/a/path/to/file_test.go:258
            	            				/this/is/a/path/to/file_test.go:748
            	Error:      	Not equal:
...
```

With the latter output, it is much more straightforward to find the file
you are looking for, even though in the displayed case, the file is the same.

However, for VSCodium, the case is a little more helpful, since VSCodium's
terminal is smart enough to recognize the output, and make links out of that input.

Signed-off-by: Stavros Ntentos <133706+stdedos@users.noreply.github.com>
Signed-off-by: Stavros Ntentos <133706+stdedos@users.noreply.github.com>
@stdedos
Copy link
Contributor Author

stdedos commented Jun 29, 2022

If you merge master into your branch and run go test ./... you should have all the test files executed.

It seems to be what I was looking for, thanks 😄 probably that -v-flag messes up the "simple" input on big testing suites

testify$ go test ./...
go: downloading github.com/stretchr/objx v0.4.0
ok    github.com/stretchr/testify 0.002s
ok    github.com/stretchr/testify/assert  0.353s
?     github.com/stretchr/testify/http  [no test files]
--- FAIL: Test_Mock_Chained_On (0.00s)
    mock_test.go:177: 
          Error Trace:  /path/testify/mock/mock_test.go:177
          Error:        Not equal: 
                        expected: []*mock.Call{(*mock.Call)(0xc0000be4d0), (*mock.Call)(0xc0000be580)}
                        actual  : []*mock.Call{(*mock.Call)(0xc0000be370), (*mock.Call)(0xc0000be420)}
                        
                        Diff:
                        --- Expected
                        +++ Actual
                        @@ -4,25 +4,3 @@
                            ExpectedCalls: ([]*mock.Call) (len=2) {
                        -    (*mock.Call)({
                        -     Parent: (*mock.Mock)(<already shown>),
                        -     Method: (string) (len=16) "TheExampleMethod",
                        -     Arguments: (mock.Arguments) (len=3) {
                        -      (int) 1,
                        -      (int) 2,
                        -      (int) 3
                        -     },
                        -     ReturnArguments: (mock.Arguments) (len=1) {
                        -      (int) 0
                        -     },
                        -     callerInfo: ([]string) (len=1) {
                        -      (string) (len=69) "/path/testify/mock/mock_test.go:156"
                        -     },
                        -     Repeatability: (int) 0,
                        -     totalCalls: (int) 0,
                        -     optional: (bool) false,
                        -     WaitFor: (<-chan time.Time) <nil>,
                        -     waitTime: (time.Duration) 0,
                        -     RunFn: (func(mock.Arguments)) <nil>,
                        -     PanicMsg: (*string)(<nil>),
                        -     requires: ([]*mock.Call) <nil>
                        -    }),
                        +    (*mock.Call)(<already shown>),
                             (*mock.Call)({
                        @@ -67,3 +45,3 @@
                           callerInfo: ([]string) (len=1) {
                        -   (string) (len=16) "mock_test.go:156"
                        +   (string) (len=69) "/path/testify/mock/mock_test.go:156"
                           },
                        @@ -104,23 +82,3 @@
                             }),
                        -    (*mock.Call)({
                        -     Parent: (*mock.Mock)(<already shown>),
                        -     Method: (string) (len=17) "TheExampleMethod3",
                        -     Arguments: (mock.Arguments) (len=1) {
                        -      (mock.AnythingOfTypeArgument) (len=17) "*mock.ExampleType"
                        -     },
                        -     ReturnArguments: (mock.Arguments) (len=1) {
                        -      (interface {}) <nil>
                        -     },
                        -     callerInfo: ([]string) (len=1) {
                        -      (string) (len=69) "/path/testify/mock/mock_test.go:158"
                        -     },
                        -     Repeatability: (int) 0,
                        -     totalCalls: (int) 0,
                        -     optional: (bool) false,
                        -     WaitFor: (<-chan time.Time) <nil>,
                        -     waitTime: (time.Duration) 0,
                        -     RunFn: (func(mock.Arguments)) <nil>,
                        -     PanicMsg: (*string)(<nil>),
                        -     requires: ([]*mock.Call) <nil>
                        -    })
                        +    (*mock.Call)(<already shown>)
                            },
                        @@ -142,3 +100,3 @@
                           callerInfo: ([]string) (len=1) {
                        -   (string) (len=16) "mock_test.go:158"
                        +   (string) (len=69) "/path/testify/mock/mock_test.go:158"
                           },
          Test:         Test_Mock_Chained_On
--- FAIL: Test_Mock_Chained_UnsetOnlyUnsetsLastCall (0.00s)
    mock_test.go:550: 
          Error Trace:  /path/testify/mock/mock_test.go:550
          Error:        Not equal: 
                        expected: []*mock.Call{(*mock.Call)(0xc000238160), (*mock.Call)(0xc000238210)}
                        actual  : []*mock.Call{(*mock.Call)(0xc0000bfef0), (*mock.Call)(0xc000238000)}
                        
                        Diff:
                        --- Expected
                        +++ Actual
                        @@ -4,24 +4,3 @@
                            ExpectedCalls: ([]*mock.Call) (len=2) {
                        -    (*mock.Call)({
                        -     Parent: (*mock.Mock)(<already shown>),
                        -     Method: (string) (len=17) "TheExampleMethod1",
                        -     Arguments: (mock.Arguments) (len=2) {
                        -      (int) 1,
                        -      (int) 1
                        -     },
                        -     ReturnArguments: (mock.Arguments) (len=1) {
                        -      (int) 0
                        -     },
                        -     callerInfo: ([]string) (len=1) {
                        -      (string) (len=69) "/path/testify/mock/mock_test.go:526"
                        -     },
                        -     Repeatability: (int) 0,
                        -     totalCalls: (int) 0,
                        -     optional: (bool) false,
                        -     WaitFor: (<-chan time.Time) <nil>,
                        -     waitTime: (time.Duration) 0,
                        -     RunFn: (func(mock.Arguments)) <nil>,
                        -     PanicMsg: (*string)(<nil>),
                        -     requires: ([]*mock.Call) <nil>
                        -    }),
                        +    (*mock.Call)(<already shown>),
                             (*mock.Call)({
                        @@ -65,3 +44,3 @@
                           callerInfo: ([]string) (len=1) {
                        -   (string) (len=16) "mock_test.go:526"
                        +   (string) (len=69) "/path/testify/mock/mock_test.go:526"
                           },
                        @@ -101,23 +80,3 @@
                             }),
                        -    (*mock.Call)({
                        -     Parent: (*mock.Mock)(<already shown>),
                        -     Method: (string) (len=17) "TheExampleMethod2",
                        -     Arguments: (mock.Arguments) (len=2) {
                        -      (int) 2,
                        -      (int) 2
                        -     },
                        -     ReturnArguments: (mock.Arguments) {
                        -     },
                        -     callerInfo: ([]string) (len=1) {
                        -      (string) (len=69) "/path/testify/mock/mock_test.go:528"
                        -     },
                        -     Repeatability: (int) 0,
                        -     totalCalls: (int) 0,
                        -     optional: (bool) false,
                        -     WaitFor: (<-chan time.Time) <nil>,
                        -     waitTime: (time.Duration) 0,
                        -     RunFn: (func(mock.Arguments)) <nil>,
                        -     PanicMsg: (*string)(<nil>),
                        -     requires: ([]*mock.Call) <nil>
                        -    })
                        +    (*mock.Call)(<already shown>)
                            },
                        @@ -139,3 +98,3 @@
                           callerInfo: ([]string) (len=1) {
                        -   (string) (len=16) "mock_test.go:528"
                        +   (string) (len=69) "/path/testify/mock/mock_test.go:528"
                           },
          Test:         Test_Mock_Chained_UnsetOnlyUnsetsLastCall
FAIL
FAIL  github.com/stretchr/testify/mock  0.033s
ok    github.com/stretchr/testify/require 0.005s
ok    github.com/stretchr/testify/suite 8.391s
FAIL
$ # ...
testify$ go test ./...
ok    github.com/stretchr/testify (cached)
ok    github.com/stretchr/testify/assert  (cached)
?     github.com/stretchr/testify/http  [no test files]
ok    github.com/stretchr/testify/mock  0.029s
ok    github.com/stretchr/testify/require (cached)
ok    github.com/stretchr/testify/suite (cached)

If you merge master into your branch and run go test -v -race ./... you should have all the test files executed.

Hmmm ... maybe the command is different 😕 let's see ...

testify$ go test -v -race ./...
=== RUN   TestImports
--- PASS: TestImports (0.00s)
PASS
ok    github.com/stretchr/testify 0.019s
=== RUN   TestCompare17
--- PASS: TestCompare17 (0.00s)
=== RUN   TestGreater17
--- PASS: TestGreater17 (0.00s)
=== RUN   TestGreaterOrEqual17
--- PASS: TestGreaterOrEqual17 (0.00s)
=== RUN   TestLess17
--- PASS: TestLess17 (0.00s)
=== RUN   TestLessOrEqual17
--- PASS: TestLessOrEqual17 (0.00s)
=== RUN   TestCompare
--- PASS: TestCompare (0.00s)
=== RUN   TestGreater
--- PASS: TestGreater (0.00s)
=== RUN   TestGreaterOrEqual
--- PASS: TestGreaterOrEqual (0.00s)
=== RUN   TestLess
--- PASS: TestLess (0.00s)
=== RUN   TestLessOrEqual
--- PASS: TestLessOrEqual (0.00s)
=== RUN   TestPositive
--- PASS: TestPositive (0.00s)
=== RUN   TestNegative
--- PASS: TestNegative (0.00s)
=== RUN   Test_compareTwoValuesDifferentValuesTypes
--- PASS: Test_compareTwoValuesDifferentValuesTypes (0.00s)
=== RUN   Test_compareTwoValuesNotComparableValues
--- PASS: Test_compareTwoValuesNotComparableValues (0.00s)
=== RUN   Test_compareTwoValuesCorrectCompareResult
--- PASS: Test_compareTwoValuesCorrectCompareResult (0.00s)
=== RUN   Test_containsValue
--- PASS: Test_containsValue (0.00s)
=== RUN   TestComparingMsgAndArgsForwarding
--- PASS: TestComparingMsgAndArgsForwarding (0.00s)
=== RUN   TestIsIncreasing
--- PASS: TestIsIncreasing (0.00s)
=== RUN   TestIsNonIncreasing
--- PASS: TestIsNonIncreasing (0.00s)
=== RUN   TestIsDecreasing
--- PASS: TestIsDecreasing (0.00s)
=== RUN   TestIsNonDecreasing
--- PASS: TestIsNonDecreasing (0.00s)
=== RUN   TestOrderingMsgAndArgsForwarding
--- PASS: TestOrderingMsgAndArgsForwarding (0.00s)
=== RUN   TestObjectsAreEqual
=== RUN   TestObjectsAreEqual/ObjectsAreEqual("Hello_World",_"Hello_World")
=== RUN   TestObjectsAreEqual/ObjectsAreEqual(123,_123)
=== RUN   TestObjectsAreEqual/ObjectsAreEqual(123.5,_123.5)
=== RUN   TestObjectsAreEqual/ObjectsAreEqual([]byte{0x48,_0x65,_0x6c,_0x6c,_0x6f,_0x20,_0x57,_0x6f,_0x72,_0x6c,_0x64},_[]byte{0x48,_0x65,_0x6c,_0x6c,_0x6f,_0x20,_0x57,_0x6f,_0x72,_0x6c,_0x64})
=== RUN   TestObjectsAreEqual/ObjectsAreEqual(<nil>,_<nil>)
=== RUN   TestObjectsAreEqual/ObjectsAreEqual(map[int]int{5:10},_map[int]int{10:20})
=== RUN   TestObjectsAreEqual/ObjectsAreEqual(120,_"x")
=== RUN   TestObjectsAreEqual/ObjectsAreEqual("x",_120)
=== RUN   TestObjectsAreEqual/ObjectsAreEqual(0,_0.1)
=== RUN   TestObjectsAreEqual/ObjectsAreEqual(0.1,_0)
=== RUN   TestObjectsAreEqual/ObjectsAreEqual((func()_time.Time)(0x4c3380),_(func()_time.Time)(0x4c3380))
=== RUN   TestObjectsAreEqual/ObjectsAreEqual((func())(0x720c00),_(func())(0x720c20))
=== RUN   TestObjectsAreEqual/ObjectsAreEqual(0xa,_10)
--- PASS: TestObjectsAreEqual (0.00s)
    --- PASS: TestObjectsAreEqual/ObjectsAreEqual("Hello_World",_"Hello_World") (0.00s)
    --- PASS: TestObjectsAreEqual/ObjectsAreEqual(123,_123) (0.00s)
    --- PASS: TestObjectsAreEqual/ObjectsAreEqual(123.5,_123.5) (0.00s)
    --- PASS: TestObjectsAreEqual/ObjectsAreEqual([]byte{0x48,_0x65,_0x6c,_0x6c,_0x6f,_0x20,_0x57,_0x6f,_0x72,_0x6c,_0x64},_[]byte{0x48,_0x65,_0x6c,_0x6c,_0x6f,_0x20,_0x57,_0x6f,_0x72,_0x6c,_0x64}) (0.00s)
    --- PASS: TestObjectsAreEqual/ObjectsAreEqual(<nil>,_<nil>) (0.00s)
    --- PASS: TestObjectsAreEqual/ObjectsAreEqual(map[int]int{5:10},_map[int]int{10:20}) (0.00s)
    --- PASS: TestObjectsAreEqual/ObjectsAreEqual(120,_"x") (0.00s)
    --- PASS: TestObjectsAreEqual/ObjectsAreEqual("x",_120) (0.00s)
    --- PASS: TestObjectsAreEqual/ObjectsAreEqual(0,_0.1) (0.00s)
    --- PASS: TestObjectsAreEqual/ObjectsAreEqual(0.1,_0) (0.00s)
    --- PASS: TestObjectsAreEqual/ObjectsAreEqual((func()_time.Time)(0x4c3380),_(func()_time.Time)(0x4c3380)) (0.00s)
    --- PASS: TestObjectsAreEqual/ObjectsAreEqual((func())(0x720c00),_(func())(0x720c20)) (0.00s)
    --- PASS: TestObjectsAreEqual/ObjectsAreEqual(0xa,_10) (0.00s)
=== RUN   TestImplements
--- PASS: TestImplements (0.00s)
=== RUN   TestIsType
--- PASS: TestIsType (0.00s)
=== RUN   TestEqual
=== RUN   TestEqual/Equal("Hello_World",_"Hello_World")
=== RUN   TestEqual/Equal(123,_123)
=== RUN   TestEqual/Equal(123.5,_123.5)
=== RUN   TestEqual/Equal([]byte{0x48,_0x65,_0x6c,_0x6c,_0x6f,_0x20,_0x57,_0x6f,_0x72,_0x6c,_0x64},_[]byte{0x48,_0x65,_0x6c,_0x6c,_0x6f,_0x20,_0x57,_0x6f,_0x72,_0x6c,_0x64})
=== RUN   TestEqual/Equal(<nil>,_<nil>)
=== RUN   TestEqual/Equal(123,_123)#01
=== RUN   TestEqual/Equal(0x7b,_0x7b)
=== RUN   TestEqual/Equal("1",_"1")
=== RUN   TestEqual/Equal(&struct_{}{},_&struct_{}{})
=== RUN   TestEqual/Equal(<nil>,_"something")
=== RUN   TestEqual/Equal("1",_"2")
=== RUN   TestEqual/Equal(10,_0xa)
--- PASS: TestEqual (0.00s)
    --- PASS: TestEqual/Equal("Hello_World",_"Hello_World") (0.00s)
    --- PASS: TestEqual/Equal(123,_123) (0.00s)
    --- PASS: TestEqual/Equal(123.5,_123.5) (0.00s)
    --- PASS: TestEqual/Equal([]byte{0x48,_0x65,_0x6c,_0x6c,_0x6f,_0x20,_0x57,_0x6f,_0x72,_0x6c,_0x64},_[]byte{0x48,_0x65,_0x6c,_0x6c,_0x6f,_0x20,_0x57,_0x6f,_0x72,_0x6c,_0x64}) (0.00s)
    --- PASS: TestEqual/Equal(<nil>,_<nil>) (0.00s)
    --- PASS: TestEqual/Equal(123,_123)#01 (0.00s)
    --- PASS: TestEqual/Equal(0x7b,_0x7b) (0.00s)
    --- PASS: TestEqual/Equal("1",_"1") (0.00s)
    --- PASS: TestEqual/Equal(&struct_{}{},_&struct_{}{}) (0.00s)
    --- PASS: TestEqual/Equal(<nil>,_"something") (0.00s)
    --- PASS: TestEqual/Equal("1",_"2") (0.00s)
    --- PASS: TestEqual/Equal(10,_0xa) (0.00s)
=== RUN   TestSame
--- PASS: TestSame (0.00s)
=== RUN   TestNotSame
--- PASS: TestNotSame (0.00s)
=== RUN   Test_samePointers
=== RUN   Test_samePointers/1_!=_2
=== RUN   Test_samePointers/1_!=_1_(not_same_ptr)
=== RUN   Test_samePointers/ptr(1)_==_ptr(1)
=== RUN   Test_samePointers/int(1)_!=_float32(1)
=== RUN   Test_samePointers/array_!=_slice
--- PASS: Test_samePointers (0.00s)
    --- PASS: Test_samePointers/1_!=_2 (0.00s)
    --- PASS: Test_samePointers/1_!=_1_(not_same_ptr) (0.00s)
    --- PASS: Test_samePointers/ptr(1)_==_ptr(1) (0.00s)
    --- PASS: Test_samePointers/int(1)_!=_float32(1) (0.00s)
    --- PASS: Test_samePointers/array_!=_slice (0.00s)
=== RUN   TestStringEqual
--- PASS: TestStringEqual (0.00s)
=== RUN   TestEqualFormatting
--- PASS: TestEqualFormatting (0.00s)
=== RUN   TestFormatUnequalValues
--- PASS: TestFormatUnequalValues (0.00s)
=== RUN   TestNotNil
--- PASS: TestNotNil (0.00s)
=== RUN   TestNil
--- PASS: TestNil (0.00s)
=== RUN   TestTrue
--- PASS: TestTrue (0.00s)
=== RUN   TestFalse
--- PASS: TestFalse (0.00s)
=== RUN   TestExactly
=== RUN   TestExactly/Exactly(1,_1)
=== RUN   TestExactly/Exactly(1,_2)
=== RUN   TestExactly/Exactly(1,_1)#01
=== RUN   TestExactly/Exactly(<nil>,_1)
=== RUN   TestExactly/Exactly(1,_<nil>)
--- PASS: TestExactly (0.00s)
    --- PASS: TestExactly/Exactly(1,_1) (0.00s)
    --- PASS: TestExactly/Exactly(1,_2) (0.00s)
    --- PASS: TestExactly/Exactly(1,_1)#01 (0.00s)
    --- PASS: TestExactly/Exactly(<nil>,_1) (0.00s)
    --- PASS: TestExactly/Exactly(1,_<nil>) (0.00s)
=== RUN   TestNotEqual
=== RUN   TestNotEqual/NotEqual("Hello_World",_"Hello_World!")
=== RUN   TestNotEqual/NotEqual(123,_1234)
=== RUN   TestNotEqual/NotEqual(123.5,_123.55)
=== RUN   TestNotEqual/NotEqual([]byte{0x48,_0x65,_0x6c,_0x6c,_0x6f,_0x20,_0x57,_0x6f,_0x72,_0x6c,_0x64},_[]byte{0x48,_0x65,_0x6c,_0x6c,_0x6f,_0x20,_0x57,_0x6f,_0x72,_0x6c,_0x64,_0x21})
=== RUN   TestNotEqual/NotEqual(<nil>,_&assert.AssertionTesterConformingObject{})
=== RUN   TestNotEqual/NotEqual(<nil>,_<nil>)
=== RUN   TestNotEqual/NotEqual("Hello_World",_"Hello_World")
=== RUN   TestNotEqual/NotEqual(123,_123)
=== RUN   TestNotEqual/NotEqual(123.5,_123.5)
=== RUN   TestNotEqual/NotEqual([]byte{0x48,_0x65,_0x6c,_0x6c,_0x6f,_0x20,_0x57,_0x6f,_0x72,_0x6c,_0x64},_[]byte{0x48,_0x65,_0x6c,_0x6c,_0x6f,_0x20,_0x57,_0x6f,_0x72,_0x6c,_0x64})
=== RUN   TestNotEqual/NotEqual(&assert.AssertionTesterConformingObject{},_&assert.AssertionTesterConformingObject{})
=== RUN   TestNotEqual/NotEqual(&struct_{}{},_&struct_{}{})
=== RUN   TestNotEqual/NotEqual((func()_int)(0x7210a0),_(func()_int)(0x7210c0))
=== RUN   TestNotEqual/NotEqual(10,_0xa)
--- PASS: TestNotEqual (0.00s)
    --- PASS: TestNotEqual/NotEqual("Hello_World",_"Hello_World!") (0.00s)
    --- PASS: TestNotEqual/NotEqual(123,_1234) (0.00s)
    --- PASS: TestNotEqual/NotEqual(123.5,_123.55) (0.00s)
    --- PASS: TestNotEqual/NotEqual([]byte{0x48,_0x65,_0x6c,_0x6c,_0x6f,_0x20,_0x57,_0x6f,_0x72,_0x6c,_0x64},_[]byte{0x48,_0x65,_0x6c,_0x6c,_0x6f,_0x20,_0x57,_0x6f,_0x72,_0x6c,_0x64,_0x21}) (0.00s)
    --- PASS: TestNotEqual/NotEqual(<nil>,_&assert.AssertionTesterConformingObject{}) (0.00s)
    --- PASS: TestNotEqual/NotEqual(<nil>,_<nil>) (0.00s)
    --- PASS: TestNotEqual/NotEqual("Hello_World",_"Hello_World") (0.00s)
    --- PASS: TestNotEqual/NotEqual(123,_123) (0.00s)
    --- PASS: TestNotEqual/NotEqual(123.5,_123.5) (0.00s)
    --- PASS: TestNotEqual/NotEqual([]byte{0x48,_0x65,_0x6c,_0x6c,_0x6f,_0x20,_0x57,_0x6f,_0x72,_0x6c,_0x64},_[]byte{0x48,_0x65,_0x6c,_0x6c,_0x6f,_0x20,_0x57,_0x6f,_0x72,_0x6c,_0x64}) (0.00s)
    --- PASS: TestNotEqual/NotEqual(&assert.AssertionTesterConformingObject{},_&assert.AssertionTesterConformingObject{}) (0.00s)
    --- PASS: TestNotEqual/NotEqual(&struct_{}{},_&struct_{}{}) (0.00s)
    --- PASS: TestNotEqual/NotEqual((func()_int)(0x7210a0),_(func()_int)(0x7210c0)) (0.00s)
    --- PASS: TestNotEqual/NotEqual(10,_0xa) (0.00s)
=== RUN   TestNotEqualValues
=== RUN   TestNotEqualValues/NotEqualValues("Hello_World",_"Hello_World!")
=== RUN   TestNotEqualValues/NotEqualValues(123,_1234)
=== RUN   TestNotEqualValues/NotEqualValues(123.5,_123.55)
=== RUN   TestNotEqualValues/NotEqualValues([]byte{0x48,_0x65,_0x6c,_0x6c,_0x6f,_0x20,_0x57,_0x6f,_0x72,_0x6c,_0x64},_[]byte{0x48,_0x65,_0x6c,_0x6c,_0x6f,_0x20,_0x57,_0x6f,_0x72,_0x6c,_0x64,_0x21})
=== RUN   TestNotEqualValues/NotEqualValues(<nil>,_&assert.AssertionTesterConformingObject{})
=== RUN   TestNotEqualValues/NotEqualValues(<nil>,_<nil>)
=== RUN   TestNotEqualValues/NotEqualValues("Hello_World",_"Hello_World")
=== RUN   TestNotEqualValues/NotEqualValues(123,_123)
=== RUN   TestNotEqualValues/NotEqualValues(123.5,_123.5)
=== RUN   TestNotEqualValues/NotEqualValues([]byte{0x48,_0x65,_0x6c,_0x6c,_0x6f,_0x20,_0x57,_0x6f,_0x72,_0x6c,_0x64},_[]byte{0x48,_0x65,_0x6c,_0x6c,_0x6f,_0x20,_0x57,_0x6f,_0x72,_0x6c,_0x64})
=== RUN   TestNotEqualValues/NotEqualValues(&assert.AssertionTesterConformingObject{},_&assert.AssertionTesterConformingObject{})
=== RUN   TestNotEqualValues/NotEqualValues(&struct_{}{},_&struct_{}{})
=== RUN   TestNotEqualValues/NotEqualValues((func()_int)(0x7210e0),_(func()_int)(0x721100))
=== RUN   TestNotEqualValues/NotEqualValues(10,_11)
=== RUN   TestNotEqualValues/NotEqualValues(10,_0xa)
=== RUN   TestNotEqualValues/NotEqualValues(struct_{}{},_struct_{}{})
--- PASS: TestNotEqualValues (0.00s)
    --- PASS: TestNotEqualValues/NotEqualValues("Hello_World",_"Hello_World!") (0.00s)
    --- PASS: TestNotEqualValues/NotEqualValues(123,_1234) (0.00s)
    --- PASS: TestNotEqualValues/NotEqualValues(123.5,_123.55) (0.00s)
    --- PASS: TestNotEqualValues/NotEqualValues([]byte{0x48,_0x65,_0x6c,_0x6c,_0x6f,_0x20,_0x57,_0x6f,_0x72,_0x6c,_0x64},_[]byte{0x48,_0x65,_0x6c,_0x6c,_0x6f,_0x20,_0x57,_0x6f,_0x72,_0x6c,_0x64,_0x21}) (0.00s)
    --- PASS: TestNotEqualValues/NotEqualValues(<nil>,_&assert.AssertionTesterConformingObject{}) (0.00s)
    --- PASS: TestNotEqualValues/NotEqualValues(<nil>,_<nil>) (0.00s)
    --- PASS: TestNotEqualValues/NotEqualValues("Hello_World",_"Hello_World") (0.00s)
    --- PASS: TestNotEqualValues/NotEqualValues(123,_123) (0.00s)
    --- PASS: TestNotEqualValues/NotEqualValues(123.5,_123.5) (0.00s)
    --- PASS: TestNotEqualValues/NotEqualValues([]byte{0x48,_0x65,_0x6c,_0x6c,_0x6f,_0x20,_0x57,_0x6f,_0x72,_0x6c,_0x64},_[]byte{0x48,_0x65,_0x6c,_0x6c,_0x6f,_0x20,_0x57,_0x6f,_0x72,_0x6c,_0x64}) (0.00s)
    --- PASS: TestNotEqualValues/NotEqualValues(&assert.AssertionTesterConformingObject{},_&assert.AssertionTesterConformingObject{}) (0.00s)
    --- PASS: TestNotEqualValues/NotEqualValues(&struct_{}{},_&struct_{}{}) (0.00s)
    --- PASS: TestNotEqualValues/NotEqualValues((func()_int)(0x7210e0),_(func()_int)(0x721100)) (0.00s)
    --- PASS: TestNotEqualValues/NotEqualValues(10,_11) (0.00s)
    --- PASS: TestNotEqualValues/NotEqualValues(10,_0xa) (0.00s)
    --- PASS: TestNotEqualValues/NotEqualValues(struct_{}{},_struct_{}{}) (0.00s)
=== RUN   TestContainsNotContains
=== RUN   TestContainsNotContains/Contains("Hello_World",_"Hello")
=== RUN   TestContainsNotContains/Contains("Hello_World",_"Salut")
=== RUN   TestContainsNotContains/Contains([]string{"Foo",_"Bar"},_"Bar")
=== RUN   TestContainsNotContains/Contains([]string{"Foo",_"Bar"},_"Salut")
=== RUN   TestContainsNotContains/Contains([]*assert.A{(*assert.A)(0xc000536400),_(*assert.A)(0xc000536420),_(*assert.A)(0xc000536440),_(*assert.A)(0xc000536460)},_&assert.A{Name:"g",_Value:"h"})
=== RUN   TestContainsNotContains/Contains([]*assert.A{(*assert.A)(0xc000536400),_(*assert.A)(0xc000536420),_(*assert.A)(0xc000536440),_(*assert.A)(0xc000536460)},_&assert.A{Name:"g",_Value:"e"})
=== RUN   TestContainsNotContains/Contains(map[interface_{}]interface_{}{"Foo":"Bar"},_"Foo")
=== RUN   TestContainsNotContains/Contains(map[interface_{}]interface_{}{"Foo":"Bar"},_"Bar")
=== RUN   TestContainsNotContains/Contains(map[interface_{}]interface_{}(nil),_"Bar")
=== RUN   TestContainsNotContains/NotContains("Hello_World",_"Hello")
=== RUN   TestContainsNotContains/NotContains("Hello_World",_"Salut")
=== RUN   TestContainsNotContains/NotContains([]string{"Foo",_"Bar"},_"Bar")
=== RUN   TestContainsNotContains/NotContains([]string{"Foo",_"Bar"},_"Salut")
=== RUN   TestContainsNotContains/NotContains([]*assert.A{(*assert.A)(0xc000536400),_(*assert.A)(0xc000536420),_(*assert.A)(0xc000536440),_(*assert.A)(0xc000536460)},_&assert.A{Name:"g",_Value:"h"})
=== RUN   TestContainsNotContains/NotContains([]*assert.A{(*assert.A)(0xc000536400),_(*assert.A)(0xc000536420),_(*assert.A)(0xc000536440),_(*assert.A)(0xc000536460)},_&assert.A{Name:"g",_Value:"e"})
=== RUN   TestContainsNotContains/NotContains(map[interface_{}]interface_{}{"Foo":"Bar"},_"Foo")
=== RUN   TestContainsNotContains/NotContains(map[interface_{}]interface_{}{"Foo":"Bar"},_"Bar")
=== RUN   TestContainsNotContains/NotContains(map[interface_{}]interface_{}(nil),_"Bar")
--- PASS: TestContainsNotContains (0.00s)
    --- PASS: TestContainsNotContains/Contains("Hello_World",_"Hello") (0.00s)
    --- PASS: TestContainsNotContains/Contains("Hello_World",_"Salut") (0.00s)
    --- PASS: TestContainsNotContains/Contains([]string{"Foo",_"Bar"},_"Bar") (0.00s)
    --- PASS: TestContainsNotContains/Contains([]string{"Foo",_"Bar"},_"Salut") (0.00s)
    --- PASS: TestContainsNotContains/Contains([]*assert.A{(*assert.A)(0xc000536400),_(*assert.A)(0xc000536420),_(*assert.A)(0xc000536440),_(*assert.A)(0xc000536460)},_&assert.A{Name:"g",_Value:"h"}) (0.00s)
    --- PASS: TestContainsNotContains/Contains([]*assert.A{(*assert.A)(0xc000536400),_(*assert.A)(0xc000536420),_(*assert.A)(0xc000536440),_(*assert.A)(0xc000536460)},_&assert.A{Name:"g",_Value:"e"}) (0.00s)
    --- PASS: TestContainsNotContains/Contains(map[interface_{}]interface_{}{"Foo":"Bar"},_"Foo") (0.00s)
    --- PASS: TestContainsNotContains/Contains(map[interface_{}]interface_{}{"Foo":"Bar"},_"Bar") (0.00s)
    --- PASS: TestContainsNotContains/Contains(map[interface_{}]interface_{}(nil),_"Bar") (0.00s)
    --- PASS: TestContainsNotContains/NotContains("Hello_World",_"Hello") (0.00s)
    --- PASS: TestContainsNotContains/NotContains("Hello_World",_"Salut") (0.00s)
    --- PASS: TestContainsNotContains/NotContains([]string{"Foo",_"Bar"},_"Bar") (0.00s)
    --- PASS: TestContainsNotContains/NotContains([]string{"Foo",_"Bar"},_"Salut") (0.00s)
    --- PASS: TestContainsNotContains/NotContains([]*assert.A{(*assert.A)(0xc000536400),_(*assert.A)(0xc000536420),_(*assert.A)(0xc000536440),_(*assert.A)(0xc000536460)},_&assert.A{Name:"g",_Value:"h"}) (0.00s)
    --- PASS: TestContainsNotContains/NotContains([]*assert.A{(*assert.A)(0xc000536400),_(*assert.A)(0xc000536420),_(*assert.A)(0xc000536440),_(*assert.A)(0xc000536460)},_&assert.A{Name:"g",_Value:"e"}) (0.00s)
    --- PASS: TestContainsNotContains/NotContains(map[interface_{}]interface_{}{"Foo":"Bar"},_"Foo") (0.00s)
    --- PASS: TestContainsNotContains/NotContains(map[interface_{}]interface_{}{"Foo":"Bar"},_"Bar") (0.00s)
    --- PASS: TestContainsNotContains/NotContains(map[interface_{}]interface_{}(nil),_"Bar") (0.00s)
=== RUN   TestContainsFailMessage
--- PASS: TestContainsFailMessage (0.00s)
=== RUN   TestContainsNotContainsOnNilValue
--- PASS: TestContainsNotContainsOnNilValue (0.00s)
=== RUN   TestSubsetNotSubset
=== RUN   TestSubsetNotSubset/SubSet:_given_subset_is_nil
=== RUN   TestSubsetNotSubset/SubSet:_any_set_contains_the_nil_set
=== RUN   TestSubsetNotSubset/SubSet:_[1,_2,_3]_contains_[1,_2]
=== RUN   TestSubsetNotSubset/SubSet:_[1,_2,_3]_contains_[1,_2,_3
=== RUN   TestSubsetNotSubset/SubSet:_["hello",_"world"]_contains_["hello"]
=== RUN   TestSubsetNotSubset/SubSet:_{_"a":_"x",_"b":_"y",_"c":_"z"}_contains_{_"a":_"x",_"b":_"y"}
=== RUN   TestSubsetNotSubset/SubSet:_["hello",_"world"]_does_not_contain_["hello",_"testify"]
=== RUN   TestSubsetNotSubset/SubSet:_[1,_2,_3]_does_not_contain_[4,_5
=== RUN   TestSubsetNotSubset/SubSet:_[1,_2,_3]_does_not_contain_[1,_5]
=== RUN   TestSubsetNotSubset/SubSet:_{_"a":_"x",_"b":_"y",_"c":_"z"}_does_not_contain_{_"a":_"x",_"b":_"z"}
=== RUN   TestSubsetNotSubset/NotSubSet:_given_subset_is_nil
=== RUN   TestSubsetNotSubset/NotSubSet:_any_set_contains_the_nil_set
=== RUN   TestSubsetNotSubset/NotSubSet:_[1,_2,_3]_contains_[1,_2]
=== RUN   TestSubsetNotSubset/NotSubSet:_[1,_2,_3]_contains_[1,_2,_3
=== RUN   TestSubsetNotSubset/NotSubSet:_["hello",_"world"]_contains_["hello"]
=== RUN   TestSubsetNotSubset/NotSubSet:_{_"a":_"x",_"b":_"y",_"c":_"z"}_contains_{_"a":_"x",_"b":_"y"}
=== RUN   TestSubsetNotSubset/NotSubSet:_["hello",_"world"]_does_not_contain_["hello",_"testify"]
=== RUN   TestSubsetNotSubset/NotSubSet:_[1,_2,_3]_does_not_contain_[4,_5
=== RUN   TestSubsetNotSubset/NotSubSet:_[1,_2,_3]_does_not_contain_[1,_5]
=== RUN   TestSubsetNotSubset/NotSubSet:_{_"a":_"x",_"b":_"y",_"c":_"z"}_does_not_contain_{_"a":_"x",_"b":_"z"}
--- PASS: TestSubsetNotSubset (0.00s)
    --- PASS: TestSubsetNotSubset/SubSet:_given_subset_is_nil (0.00s)
    --- PASS: TestSubsetNotSubset/SubSet:_any_set_contains_the_nil_set (0.00s)
    --- PASS: TestSubsetNotSubset/SubSet:_[1,_2,_3]_contains_[1,_2] (0.00s)
    --- PASS: TestSubsetNotSubset/SubSet:_[1,_2,_3]_contains_[1,_2,_3 (0.00s)
    --- PASS: TestSubsetNotSubset/SubSet:_["hello",_"world"]_contains_["hello"] (0.00s)
    --- PASS: TestSubsetNotSubset/SubSet:_{_"a":_"x",_"b":_"y",_"c":_"z"}_contains_{_"a":_"x",_"b":_"y"} (0.00s)
    --- PASS: TestSubsetNotSubset/SubSet:_["hello",_"world"]_does_not_contain_["hello",_"testify"] (0.00s)
    --- PASS: TestSubsetNotSubset/SubSet:_[1,_2,_3]_does_not_contain_[4,_5 (0.00s)
    --- PASS: TestSubsetNotSubset/SubSet:_[1,_2,_3]_does_not_contain_[1,_5] (0.00s)
    --- PASS: TestSubsetNotSubset/SubSet:_{_"a":_"x",_"b":_"y",_"c":_"z"}_does_not_contain_{_"a":_"x",_"b":_"z"} (0.00s)
    --- PASS: TestSubsetNotSubset/NotSubSet:_given_subset_is_nil (0.00s)
    --- PASS: TestSubsetNotSubset/NotSubSet:_any_set_contains_the_nil_set (0.00s)
    --- PASS: TestSubsetNotSubset/NotSubSet:_[1,_2,_3]_contains_[1,_2] (0.00s)
    --- PASS: TestSubsetNotSubset/NotSubSet:_[1,_2,_3]_contains_[1,_2,_3 (0.00s)
    --- PASS: TestSubsetNotSubset/NotSubSet:_["hello",_"world"]_contains_["hello"] (0.00s)
    --- PASS: TestSubsetNotSubset/NotSubSet:_{_"a":_"x",_"b":_"y",_"c":_"z"}_contains_{_"a":_"x",_"b":_"y"} (0.00s)
    --- PASS: TestSubsetNotSubset/NotSubSet:_["hello",_"world"]_does_not_contain_["hello",_"testify"] (0.00s)
    --- PASS: TestSubsetNotSubset/NotSubSet:_[1,_2,_3]_does_not_contain_[4,_5 (0.00s)
    --- PASS: TestSubsetNotSubset/NotSubSet:_[1,_2,_3]_does_not_contain_[1,_5] (0.00s)
    --- PASS: TestSubsetNotSubset/NotSubSet:_{_"a":_"x",_"b":_"y",_"c":_"z"}_does_not_contain_{_"a":_"x",_"b":_"z"} (0.00s)
=== RUN   TestNotSubsetNil
--- PASS: TestNotSubsetNil (0.00s)
=== RUN   Test_containsElement
--- PASS: Test_containsElement (0.00s)
=== RUN   TestElementsMatch
=== RUN   TestElementsMatch/ElementsMatch(<nil>,_<nil>)
=== RUN   TestElementsMatch/ElementsMatch(<nil>,_<nil>)#01
=== RUN   TestElementsMatch/ElementsMatch([]int{},_[]int{})
=== RUN   TestElementsMatch/ElementsMatch([]int{1},_[]int{1})
=== RUN   TestElementsMatch/ElementsMatch([]int{1,_1},_[]int{1,_1})
=== RUN   TestElementsMatch/ElementsMatch([]int{1,_2},_[]int{1,_2})
=== RUN   TestElementsMatch/ElementsMatch([]int{1,_2},_[]int{2,_1})
=== RUN   TestElementsMatch/ElementsMatch([2]int{1,_2},_[2]int{2,_1})
=== RUN   TestElementsMatch/ElementsMatch([]string{"hello",_"world"},_[]string{"world",_"hello"})
=== RUN   TestElementsMatch/ElementsMatch([]string{"hello",_"hello"},_[]string{"hello",_"hello"})
=== RUN   TestElementsMatch/ElementsMatch([]string{"hello",_"hello",_"world"},_[]string{"hello",_"world",_"hello"})
=== RUN   TestElementsMatch/ElementsMatch([3]string{"hello",_"hello",_"world"},_[3]string{"hello",_"world",_"hello"})
=== RUN   TestElementsMatch/ElementsMatch([]int{},_<nil>)
=== RUN   TestElementsMatch/ElementsMatch([]int{1},_[]int{1,_1})
=== RUN   TestElementsMatch/ElementsMatch([]int{1,_2},_[]int{2,_2})
=== RUN   TestElementsMatch/ElementsMatch([]string{"hello",_"hello"},_[]string{"hello"})
--- PASS: TestElementsMatch (0.00s)
    --- PASS: TestElementsMatch/ElementsMatch(<nil>,_<nil>) (0.00s)
    --- PASS: TestElementsMatch/ElementsMatch(<nil>,_<nil>)#01 (0.00s)
    --- PASS: TestElementsMatch/ElementsMatch([]int{},_[]int{}) (0.00s)
    --- PASS: TestElementsMatch/ElementsMatch([]int{1},_[]int{1}) (0.00s)
    --- PASS: TestElementsMatch/ElementsMatch([]int{1,_1},_[]int{1,_1}) (0.00s)
    --- PASS: TestElementsMatch/ElementsMatch([]int{1,_2},_[]int{1,_2}) (0.00s)
    --- PASS: TestElementsMatch/ElementsMatch([]int{1,_2},_[]int{2,_1}) (0.00s)
    --- PASS: TestElementsMatch/ElementsMatch([2]int{1,_2},_[2]int{2,_1}) (0.00s)
    --- PASS: TestElementsMatch/ElementsMatch([]string{"hello",_"world"},_[]string{"world",_"hello"}) (0.00s)
    --- PASS: TestElementsMatch/ElementsMatch([]string{"hello",_"hello"},_[]string{"hello",_"hello"}) (0.00s)
    --- PASS: TestElementsMatch/ElementsMatch([]string{"hello",_"hello",_"world"},_[]string{"hello",_"world",_"hello"}) (0.00s)
    --- PASS: TestElementsMatch/ElementsMatch([3]string{"hello",_"hello",_"world"},_[3]string{"hello",_"world",_"hello"}) (0.00s)
    --- PASS: TestElementsMatch/ElementsMatch([]int{},_<nil>) (0.00s)
    --- PASS: TestElementsMatch/ElementsMatch([]int{1},_[]int{1,_1}) (0.00s)
    --- PASS: TestElementsMatch/ElementsMatch([]int{1,_2},_[]int{2,_2}) (0.00s)
    --- PASS: TestElementsMatch/ElementsMatch([]string{"hello",_"hello"},_[]string{"hello"}) (0.00s)
=== RUN   TestDiffLists
=== RUN   TestDiffLists/equal_empty
=== RUN   TestDiffLists/equal_same_order
=== RUN   TestDiffLists/equal_different_order
=== RUN   TestDiffLists/extra_A
=== RUN   TestDiffLists/extra_A_twice
=== RUN   TestDiffLists/extra_B
=== RUN   TestDiffLists/extra_B_twice
=== RUN   TestDiffLists/integers_1
=== RUN   TestDiffLists/integers_2
--- PASS: TestDiffLists (0.00s)
    --- PASS: TestDiffLists/equal_empty (0.00s)
    --- PASS: TestDiffLists/equal_same_order (0.00s)
    --- PASS: TestDiffLists/equal_different_order (0.00s)
    --- PASS: TestDiffLists/extra_A (0.00s)
    --- PASS: TestDiffLists/extra_A_twice (0.00s)
    --- PASS: TestDiffLists/extra_B (0.00s)
    --- PASS: TestDiffLists/extra_B_twice (0.00s)
    --- PASS: TestDiffLists/integers_1 (0.00s)
    --- PASS: TestDiffLists/integers_2 (0.00s)
=== RUN   TestCondition
--- PASS: TestCondition (0.00s)
=== RUN   TestDidPanic
--- PASS: TestDidPanic (0.00s)
=== RUN   TestPanics
--- PASS: TestPanics (0.00s)
=== RUN   TestPanicsWithValue
--- PASS: TestPanicsWithValue (0.00s)
=== RUN   TestPanicsWithError
--- PASS: TestPanicsWithError (0.00s)
=== RUN   TestNotPanics
--- PASS: TestNotPanics (0.00s)
=== RUN   TestNoError
--- PASS: TestNoError (0.00s)
=== RUN   TestError
--- PASS: TestError (0.00s)
=== RUN   TestEqualError
--- PASS: TestEqualError (0.00s)
=== RUN   TestErrorContains
--- PASS: TestErrorContains (0.00s)
=== RUN   Test_isEmpty
--- PASS: Test_isEmpty (0.00s)
=== RUN   TestEmpty
--- PASS: TestEmpty (0.00s)
=== RUN   TestNotEmpty
--- PASS: TestNotEmpty (0.00s)
=== RUN   Test_getLen
--- PASS: Test_getLen (0.00s)
=== RUN   TestLen
--- PASS: TestLen (0.00s)
=== RUN   TestWithinDuration
--- PASS: TestWithinDuration (0.00s)
=== RUN   TestWithinRange
--- PASS: TestWithinRange (0.00s)
=== RUN   TestInDelta
--- PASS: TestInDelta (0.00s)
=== RUN   TestInDeltaSlice
--- PASS: TestInDeltaSlice (0.00s)
=== RUN   TestInDeltaMapValues
--- PASS: TestInDeltaMapValues (0.00s)
=== RUN   TestInEpsilon
--- PASS: TestInEpsilon (0.00s)
=== RUN   TestInEpsilonSlice
--- PASS: TestInEpsilonSlice (0.00s)
=== RUN   TestRegexp
--- PASS: TestRegexp (0.00s)
=== RUN   TestCallerInfoWithAutogeneratedFunctions
--- PASS: TestCallerInfoWithAutogeneratedFunctions (0.00s)
=== RUN   TestZero
--- PASS: TestZero (0.00s)
=== RUN   TestNotZero
--- PASS: TestNotZero (0.00s)
=== RUN   TestFileExists
--- PASS: TestFileExists (0.00s)
=== RUN   TestNoFileExists
--- PASS: TestNoFileExists (0.00s)
=== RUN   TestDirExists
--- PASS: TestDirExists (0.00s)
=== RUN   TestNoDirExists
--- PASS: TestNoDirExists (0.00s)
=== RUN   TestJSONEq_EqualSONString
--- PASS: TestJSONEq_EqualSONString (0.00s)
=== RUN   TestJSONEq_EquivalentButNotEqual
--- PASS: TestJSONEq_EquivalentButNotEqual (0.00s)
=== RUN   TestJSONEq_HashOfArraysAndHashes
--- PASS: TestJSONEq_HashOfArraysAndHashes (0.00s)
=== RUN   TestJSONEq_Array
--- PASS: TestJSONEq_Array (0.00s)
=== RUN   TestJSONEq_HashAndArrayNotEquivalent
--- PASS: TestJSONEq_HashAndArrayNotEquivalent (0.00s)
=== RUN   TestJSONEq_HashesNotEquivalent
--- PASS: TestJSONEq_HashesNotEquivalent (0.00s)
=== RUN   TestJSONEq_ActualIsNotJSON
--- PASS: TestJSONEq_ActualIsNotJSON (0.00s)
=== RUN   TestJSONEq_ExpectedIsNotJSON
--- PASS: TestJSONEq_ExpectedIsNotJSON (0.00s)
=== RUN   TestJSONEq_ExpectedAndActualNotJSON
--- PASS: TestJSONEq_ExpectedAndActualNotJSON (0.00s)
=== RUN   TestJSONEq_ArraysOfDifferentOrder
--- PASS: TestJSONEq_ArraysOfDifferentOrder (0.00s)
=== RUN   TestYAMLEq_EqualYAMLString
--- PASS: TestYAMLEq_EqualYAMLString (0.00s)
=== RUN   TestYAMLEq_EquivalentButNotEqual
--- PASS: TestYAMLEq_EquivalentButNotEqual (0.00s)
=== RUN   TestYAMLEq_HashOfArraysAndHashes
--- PASS: TestYAMLEq_HashOfArraysAndHashes (0.00s)
=== RUN   TestYAMLEq_Array
--- PASS: TestYAMLEq_Array (0.00s)
=== RUN   TestYAMLEq_HashAndArrayNotEquivalent
--- PASS: TestYAMLEq_HashAndArrayNotEquivalent (0.00s)
=== RUN   TestYAMLEq_HashesNotEquivalent
--- PASS: TestYAMLEq_HashesNotEquivalent (0.00s)
=== RUN   TestYAMLEq_ActualIsSimpleString
--- PASS: TestYAMLEq_ActualIsSimpleString (0.00s)
=== RUN   TestYAMLEq_ExpectedIsSimpleString
--- PASS: TestYAMLEq_ExpectedIsSimpleString (0.00s)
=== RUN   TestYAMLEq_ExpectedAndActualSimpleString
--- PASS: TestYAMLEq_ExpectedAndActualSimpleString (0.00s)
=== RUN   TestYAMLEq_ArraysOfDifferentOrder
--- PASS: TestYAMLEq_ArraysOfDifferentOrder (0.00s)
=== RUN   TestDiff
--- PASS: TestDiff (0.00s)
=== RUN   TestTimeEqualityErrorFormatting
--- PASS: TestTimeEqualityErrorFormatting (0.00s)
=== RUN   TestDiffEmptyCases
--- PASS: TestDiffEmptyCases (0.00s)
=== RUN   TestDiffRace
=== PAUSE TestDiffRace
=== RUN   TestFailNowWithPlainTestingT
--- PASS: TestFailNowWithPlainTestingT (0.00s)
=== RUN   TestFailNowWithFullTestingT
--- PASS: TestFailNowWithFullTestingT (0.00s)
=== RUN   TestBytesEqual
--- PASS: TestBytesEqual (0.00s)
=== RUN   TestComparisonAssertionFunc
=== RUN   TestComparisonAssertionFunc/implements
=== RUN   TestComparisonAssertionFunc/isType
=== RUN   TestComparisonAssertionFunc/equal
=== RUN   TestComparisonAssertionFunc/equalValues
=== RUN   TestComparisonAssertionFunc/notEqualValues
=== RUN   TestComparisonAssertionFunc/exactly
=== RUN   TestComparisonAssertionFunc/notEqual
=== RUN   TestComparisonAssertionFunc/notContains
=== RUN   TestComparisonAssertionFunc/subset
=== RUN   TestComparisonAssertionFunc/notSubset
=== RUN   TestComparisonAssertionFunc/elementsMatch
=== RUN   TestComparisonAssertionFunc/regexp
=== RUN   TestComparisonAssertionFunc/notRegexp
--- PASS: TestComparisonAssertionFunc (0.00s)
    --- PASS: TestComparisonAssertionFunc/implements (0.00s)
    --- PASS: TestComparisonAssertionFunc/isType (0.00s)
    --- PASS: TestComparisonAssertionFunc/equal (0.00s)
    --- PASS: TestComparisonAssertionFunc/equalValues (0.00s)
    --- PASS: TestComparisonAssertionFunc/notEqualValues (0.00s)
    --- PASS: TestComparisonAssertionFunc/exactly (0.00s)
    --- PASS: TestComparisonAssertionFunc/notEqual (0.00s)
    --- PASS: TestComparisonAssertionFunc/notContains (0.00s)
    --- PASS: TestComparisonAssertionFunc/subset (0.00s)
    --- PASS: TestComparisonAssertionFunc/notSubset (0.00s)
    --- PASS: TestComparisonAssertionFunc/elementsMatch (0.00s)
    --- PASS: TestComparisonAssertionFunc/regexp (0.00s)
    --- PASS: TestComparisonAssertionFunc/notRegexp (0.00s)
=== RUN   TestValueAssertionFunc
=== RUN   TestValueAssertionFunc/notNil
=== RUN   TestValueAssertionFunc/nil
=== RUN   TestValueAssertionFunc/empty
=== RUN   TestValueAssertionFunc/notEmpty
=== RUN   TestValueAssertionFunc/zero
=== RUN   TestValueAssertionFunc/notZero
--- PASS: TestValueAssertionFunc (0.00s)
    --- PASS: TestValueAssertionFunc/notNil (0.00s)
    --- PASS: TestValueAssertionFunc/nil (0.00s)
    --- PASS: TestValueAssertionFunc/empty (0.00s)
    --- PASS: TestValueAssertionFunc/notEmpty (0.00s)
    --- PASS: TestValueAssertionFunc/zero (0.00s)
    --- PASS: TestValueAssertionFunc/notZero (0.00s)
=== RUN   TestBoolAssertionFunc
=== RUN   TestBoolAssertionFunc/true
=== RUN   TestBoolAssertionFunc/false
--- PASS: TestBoolAssertionFunc (0.00s)
    --- PASS: TestBoolAssertionFunc/true (0.00s)
    --- PASS: TestBoolAssertionFunc/false (0.00s)
=== RUN   TestErrorAssertionFunc
=== RUN   TestErrorAssertionFunc/noError
=== RUN   TestErrorAssertionFunc/error
--- PASS: TestErrorAssertionFunc (0.00s)
    --- PASS: TestErrorAssertionFunc/noError (0.00s)
    --- PASS: TestErrorAssertionFunc/error (0.00s)
=== RUN   TestEventuallyFalse
--- PASS: TestEventuallyFalse (0.10s)
=== RUN   TestEventuallyTrue
--- PASS: TestEventuallyTrue (0.06s)
=== RUN   TestNeverFalse
--- PASS: TestNeverFalse (0.10s)
=== RUN   TestNeverTrue
--- PASS: TestNeverTrue (0.06s)
=== RUN   TestEventuallyIssue805
    assertions_test.go:2457: 
          Error Trace:  
          Error:        Should be false
          Test:         TestEventuallyIssue805
--- FAIL: TestEventuallyIssue805 (0.00s)
=== RUN   Test_validateEqualArgs
--- PASS: Test_validateEqualArgs (0.00s)
=== RUN   Test_truncatingFormat
--- PASS: Test_truncatingFormat (0.02s)
=== RUN   TestErrorIs
=== RUN   TestErrorIs/ErrorIs(&errors.errorString{s:"EOF"},&errors.errorString{s:"EOF"})
=== RUN   TestErrorIs/ErrorIs(&fmt.wrapError{msg:"wrap:_EOF",_err:(*errors.errorString)(0xc00019a0f0)},&errors.errorString{s:"EOF"})
=== RUN   TestErrorIs/ErrorIs(&errors.errorString{s:"EOF"},&errors.errorString{s:"io:_read/write_on_closed_pipe"})
=== RUN   TestErrorIs/ErrorIs(<nil>,&errors.errorString{s:"EOF"})
=== RUN   TestErrorIs/ErrorIs(&errors.errorString{s:"EOF"},<nil>)
=== RUN   TestErrorIs/ErrorIs(<nil>,<nil>)
--- PASS: TestErrorIs (0.00s)
    --- PASS: TestErrorIs/ErrorIs(&errors.errorString{s:"EOF"},&errors.errorString{s:"EOF"}) (0.00s)
    --- PASS: TestErrorIs/ErrorIs(&fmt.wrapError{msg:"wrap:_EOF",_err:(*errors.errorString)(0xc00019a0f0)},&errors.errorString{s:"EOF"}) (0.00s)
    --- PASS: TestErrorIs/ErrorIs(&errors.errorString{s:"EOF"},&errors.errorString{s:"io:_read/write_on_closed_pipe"}) (0.00s)
    --- PASS: TestErrorIs/ErrorIs(<nil>,&errors.errorString{s:"EOF"}) (0.00s)
    --- PASS: TestErrorIs/ErrorIs(&errors.errorString{s:"EOF"},<nil>) (0.00s)
    --- PASS: TestErrorIs/ErrorIs(<nil>,<nil>) (0.00s)
=== RUN   TestNotErrorIs
=== RUN   TestNotErrorIs/NotErrorIs(&errors.errorString{s:"EOF"},&errors.errorString{s:"EOF"})
=== RUN   TestNotErrorIs/NotErrorIs(&fmt.wrapError{msg:"wrap:_EOF",_err:(*errors.errorString)(0xc00019a0f0)},&errors.errorString{s:"EOF"})
=== RUN   TestNotErrorIs/NotErrorIs(&errors.errorString{s:"EOF"},&errors.errorString{s:"io:_read/write_on_closed_pipe"})
=== RUN   TestNotErrorIs/NotErrorIs(<nil>,&errors.errorString{s:"EOF"})
=== RUN   TestNotErrorIs/NotErrorIs(&errors.errorString{s:"EOF"},<nil>)
=== RUN   TestNotErrorIs/NotErrorIs(<nil>,<nil>)
--- PASS: TestNotErrorIs (0.00s)
    --- PASS: TestNotErrorIs/NotErrorIs(&errors.errorString{s:"EOF"},&errors.errorString{s:"EOF"}) (0.00s)
    --- PASS: TestNotErrorIs/NotErrorIs(&fmt.wrapError{msg:"wrap:_EOF",_err:(*errors.errorString)(0xc00019a0f0)},&errors.errorString{s:"EOF"}) (0.00s)
    --- PASS: TestNotErrorIs/NotErrorIs(&errors.errorString{s:"EOF"},&errors.errorString{s:"io:_read/write_on_closed_pipe"}) (0.00s)
    --- PASS: TestNotErrorIs/NotErrorIs(<nil>,&errors.errorString{s:"EOF"}) (0.00s)
    --- PASS: TestNotErrorIs/NotErrorIs(&errors.errorString{s:"EOF"},<nil>) (0.00s)
    --- PASS: TestNotErrorIs/NotErrorIs(<nil>,<nil>) (0.00s)
=== RUN   TestErrorAs
=== RUN   TestErrorAs/ErrorAs(&fmt.wrapError{msg:"wrap:_fail",_err:(*assert.customError)(0x9cf348)},(*assert.customError)(nil))
=== RUN   TestErrorAs/ErrorAs(&errors.errorString{s:"EOF"},(*assert.customError)(nil))
=== RUN   TestErrorAs/ErrorAs(<nil>,(*assert.customError)(nil))
--- PASS: TestErrorAs (0.00s)
    --- PASS: TestErrorAs/ErrorAs(&fmt.wrapError{msg:"wrap:_fail",_err:(*assert.customError)(0x9cf348)},(*assert.customError)(nil)) (0.00s)
    --- PASS: TestErrorAs/ErrorAs(&errors.errorString{s:"EOF"},(*assert.customError)(nil)) (0.00s)
    --- PASS: TestErrorAs/ErrorAs(<nil>,(*assert.customError)(nil)) (0.00s)
=== RUN   TestImplementsWrapper
--- PASS: TestImplementsWrapper (0.00s)
=== RUN   TestIsTypeWrapper
--- PASS: TestIsTypeWrapper (0.00s)
=== RUN   TestEqualWrapper
--- PASS: TestEqualWrapper (0.00s)
=== RUN   TestEqualValuesWrapper
--- PASS: TestEqualValuesWrapper (0.00s)
=== RUN   TestNotNilWrapper
--- PASS: TestNotNilWrapper (0.00s)
=== RUN   TestNilWrapper
--- PASS: TestNilWrapper (0.00s)
=== RUN   TestTrueWrapper
--- PASS: TestTrueWrapper (0.00s)
=== RUN   TestFalseWrapper
--- PASS: TestFalseWrapper (0.00s)
=== RUN   TestExactlyWrapper
--- PASS: TestExactlyWrapper (0.00s)
=== RUN   TestNotEqualWrapper
--- PASS: TestNotEqualWrapper (0.00s)
=== RUN   TestNotEqualValuesWrapper
--- PASS: TestNotEqualValuesWrapper (0.00s)
=== RUN   TestContainsWrapper
--- PASS: TestContainsWrapper (0.00s)
=== RUN   TestNotContainsWrapper
--- PASS: TestNotContainsWrapper (0.00s)
=== RUN   TestConditionWrapper
--- PASS: TestConditionWrapper (0.00s)
=== RUN   TestDidPanicWrapper
--- PASS: TestDidPanicWrapper (0.00s)
=== RUN   TestPanicsWrapper
--- PASS: TestPanicsWrapper (0.00s)
=== RUN   TestNotPanicsWrapper
--- PASS: TestNotPanicsWrapper (0.00s)
=== RUN   TestNoErrorWrapper
--- PASS: TestNoErrorWrapper (0.00s)
=== RUN   TestErrorWrapper
--- PASS: TestErrorWrapper (0.00s)
=== RUN   TestErrorContainsWrapper
--- PASS: TestErrorContainsWrapper (0.00s)
=== RUN   TestEqualErrorWrapper
--- PASS: TestEqualErrorWrapper (0.00s)
=== RUN   TestEmptyWrapper
--- PASS: TestEmptyWrapper (0.00s)
=== RUN   TestNotEmptyWrapper
--- PASS: TestNotEmptyWrapper (0.00s)
=== RUN   TestLenWrapper
--- PASS: TestLenWrapper (0.00s)
=== RUN   TestWithinDurationWrapper
--- PASS: TestWithinDurationWrapper (0.00s)
=== RUN   TestInDeltaWrapper
--- PASS: TestInDeltaWrapper (0.00s)
=== RUN   TestInEpsilonWrapper
--- PASS: TestInEpsilonWrapper (0.00s)
=== RUN   TestRegexpWrapper
--- PASS: TestRegexpWrapper (0.00s)
=== RUN   TestZeroWrapper
--- PASS: TestZeroWrapper (0.00s)
=== RUN   TestNotZeroWrapper
--- PASS: TestNotZeroWrapper (0.00s)
=== RUN   TestJSONEqWrapper_EqualSONString
--- PASS: TestJSONEqWrapper_EqualSONString (0.00s)
=== RUN   TestJSONEqWrapper_EquivalentButNotEqual
--- PASS: TestJSONEqWrapper_EquivalentButNotEqual (0.00s)
=== RUN   TestJSONEqWrapper_HashOfArraysAndHashes
--- PASS: TestJSONEqWrapper_HashOfArraysAndHashes (0.00s)
=== RUN   TestJSONEqWrapper_Array
--- PASS: TestJSONEqWrapper_Array (0.00s)
=== RUN   TestJSONEqWrapper_HashAndArrayNotEquivalent
--- PASS: TestJSONEqWrapper_HashAndArrayNotEquivalent (0.00s)
=== RUN   TestJSONEqWrapper_HashesNotEquivalent
--- PASS: TestJSONEqWrapper_HashesNotEquivalent (0.00s)
=== RUN   TestJSONEqWrapper_ActualIsNotJSON
--- PASS: TestJSONEqWrapper_ActualIsNotJSON (0.00s)
=== RUN   TestJSONEqWrapper_ExpectedIsNotJSON
--- PASS: TestJSONEqWrapper_ExpectedIsNotJSON (0.00s)
=== RUN   TestJSONEqWrapper_ExpectedAndActualNotJSON
--- PASS: TestJSONEqWrapper_ExpectedAndActualNotJSON (0.00s)
=== RUN   TestJSONEqWrapper_ArraysOfDifferentOrder
--- PASS: TestJSONEqWrapper_ArraysOfDifferentOrder (0.00s)
=== RUN   TestYAMLEqWrapper_EqualYAMLString
--- PASS: TestYAMLEqWrapper_EqualYAMLString (0.00s)
=== RUN   TestYAMLEqWrapper_EquivalentButNotEqual
--- PASS: TestYAMLEqWrapper_EquivalentButNotEqual (0.00s)
=== RUN   TestYAMLEqWrapper_HashOfArraysAndHashes
--- PASS: TestYAMLEqWrapper_HashOfArraysAndHashes (0.00s)
=== RUN   TestYAMLEqWrapper_Array
--- PASS: TestYAMLEqWrapper_Array (0.00s)
=== RUN   TestYAMLEqWrapper_HashAndArrayNotEquivalent
--- PASS: TestYAMLEqWrapper_HashAndArrayNotEquivalent (0.00s)
=== RUN   TestYAMLEqWrapper_HashesNotEquivalent
--- PASS: TestYAMLEqWrapper_HashesNotEquivalent (0.00s)
=== RUN   TestYAMLEqWrapper_ActualIsSimpleString
--- PASS: TestYAMLEqWrapper_ActualIsSimpleString (0.00s)
=== RUN   TestYAMLEqWrapper_ExpectedIsSimpleString
--- PASS: TestYAMLEqWrapper_ExpectedIsSimpleString (0.00s)
=== RUN   TestYAMLEqWrapper_ExpectedAndActualSimpleString
--- PASS: TestYAMLEqWrapper_ExpectedAndActualSimpleString (0.00s)
=== RUN   TestYAMLEqWrapper_ArraysOfDifferentOrder
--- PASS: TestYAMLEqWrapper_ArraysOfDifferentOrder (0.00s)
=== RUN   TestHTTPSuccess
--- PASS: TestHTTPSuccess (0.00s)
=== RUN   TestHTTPRedirect
--- PASS: TestHTTPRedirect (0.00s)
=== RUN   TestHTTPError
--- PASS: TestHTTPError (0.00s)
=== RUN   TestHTTPStatusCode
--- PASS: TestHTTPStatusCode (0.00s)
=== RUN   TestHTTPStatusesWrapper
--- PASS: TestHTTPStatusesWrapper (0.00s)
=== RUN   TestHTTPRequestWithNoParams
--- PASS: TestHTTPRequestWithNoParams (0.00s)
=== RUN   TestHTTPRequestWithParams
--- PASS: TestHTTPRequestWithParams (0.00s)
=== RUN   TestHttpBody
--- PASS: TestHttpBody (0.00s)
=== RUN   TestHttpBodyWrappers
--- PASS: TestHttpBodyWrappers (0.00s)
=== CONT  TestDiffRace
--- PASS: TestDiffRace (0.00s)
FAIL
FAIL  github.com/stretchr/testify/assert  0.423s
?     github.com/stretchr/testify/http  [no test files]
=== RUN   Test_Mock_TestData
--- PASS: Test_Mock_TestData (0.00s)
=== RUN   Test_Mock_On
--- PASS: Test_Mock_On (0.00s)
=== RUN   Test_Mock_Chained_On
--- PASS: Test_Mock_Chained_On (0.00s)
=== RUN   Test_Mock_On_WithArgs
--- PASS: Test_Mock_On_WithArgs (0.00s)
=== RUN   Test_Mock_On_WithFuncArg
--- PASS: Test_Mock_On_WithFuncArg (0.00s)
=== RUN   Test_Mock_On_WithIntArgMatcher
--- PASS: Test_Mock_On_WithIntArgMatcher (0.00s)
=== RUN   Test_Mock_On_WithArgMatcherThatPanics
--- PASS: Test_Mock_On_WithArgMatcherThatPanics (0.00s)
=== RUN   TestMock_WithTest
--- PASS: TestMock_WithTest (0.00s)
=== RUN   Test_Mock_On_WithPtrArgMatcher
--- PASS: Test_Mock_On_WithPtrArgMatcher (0.00s)
=== RUN   Test_Mock_On_WithFuncArgMatcher
--- PASS: Test_Mock_On_WithFuncArgMatcher (0.00s)
=== RUN   Test_Mock_On_WithInterfaceArgMatcher
--- PASS: Test_Mock_On_WithInterfaceArgMatcher (0.00s)
=== RUN   Test_Mock_On_WithChannelArgMatcher
--- PASS: Test_Mock_On_WithChannelArgMatcher (0.00s)
=== RUN   Test_Mock_On_WithMapArgMatcher
--- PASS: Test_Mock_On_WithMapArgMatcher (0.00s)
=== RUN   Test_Mock_On_WithSliceArgMatcher
--- PASS: Test_Mock_On_WithSliceArgMatcher (0.00s)
=== RUN   Test_Mock_On_WithVariadicFunc
--- PASS: Test_Mock_On_WithVariadicFunc (0.00s)
=== RUN   Test_Mock_On_WithMixedVariadicFunc
--- PASS: Test_Mock_On_WithMixedVariadicFunc (0.00s)
=== RUN   Test_Mock_On_WithVariadicFuncWithInterface
--- PASS: Test_Mock_On_WithVariadicFuncWithInterface (0.00s)
=== RUN   Test_Mock_On_WithVariadicFuncWithEmptyInterfaceArray
--- PASS: Test_Mock_On_WithVariadicFuncWithEmptyInterfaceArray (0.00s)
=== RUN   Test_Mock_On_WithFuncPanics
--- PASS: Test_Mock_On_WithFuncPanics (0.00s)
=== RUN   Test_Mock_On_WithFuncTypeArg
--- PASS: Test_Mock_On_WithFuncTypeArg (0.00s)
=== RUN   Test_Mock_Unset
--- PASS: Test_Mock_Unset (0.00s)
=== RUN   Test_Mock_Chained_UnsetOnlyUnsetsLastCall
--- PASS: Test_Mock_Chained_UnsetOnlyUnsetsLastCall (0.00s)
=== RUN   Test_Mock_UnsetIfAlreadyUnsetFails
--- PASS: Test_Mock_UnsetIfAlreadyUnsetFails (0.00s)
=== RUN   Test_Mock_Return
--- PASS: Test_Mock_Return (0.00s)
=== RUN   Test_Mock_Panic
--- PASS: Test_Mock_Panic (0.00s)
=== RUN   Test_Mock_Return_WaitUntil
--- PASS: Test_Mock_Return_WaitUntil (0.00s)
=== RUN   Test_Mock_Return_After
--- PASS: Test_Mock_Return_After (0.00s)
=== RUN   Test_Mock_Return_Run
--- PASS: Test_Mock_Return_Run (0.00s)
=== RUN   Test_Mock_Return_Run_Out_Of_Order
--- PASS: Test_Mock_Return_Run_Out_Of_Order (0.00s)
=== RUN   Test_Mock_Return_Once
--- PASS: Test_Mock_Return_Once (0.00s)
=== RUN   Test_Mock_Return_Twice
--- PASS: Test_Mock_Return_Twice (0.00s)
=== RUN   Test_Mock_Return_Times
--- PASS: Test_Mock_Return_Times (0.00s)
=== RUN   Test_Mock_Return_Nothing
--- PASS: Test_Mock_Return_Nothing (0.00s)
=== RUN   Test_Mock_Return_NotBefore_In_Order
--- PASS: Test_Mock_Return_NotBefore_In_Order (0.00s)
=== RUN   Test_Mock_Return_NotBefore_Out_Of_Order
--- PASS: Test_Mock_Return_NotBefore_Out_Of_Order (0.00s)
=== RUN   Test_Mock_Return_NotBefore_Not_Enough_Times
--- PASS: Test_Mock_Return_NotBefore_Not_Enough_Times (0.00s)
=== RUN   Test_Mock_Return_NotBefore_Different_Mock_In_Order
--- PASS: Test_Mock_Return_NotBefore_Different_Mock_In_Order (0.00s)
=== RUN   Test_Mock_Return_NotBefore_Different_Mock_Out_Of_Order
--- PASS: Test_Mock_Return_NotBefore_Different_Mock_Out_Of_Order (0.00s)
=== RUN   Test_Mock_Return_NotBefore_In_Order_With_Non_Dependant
--- PASS: Test_Mock_Return_NotBefore_In_Order_With_Non_Dependant (0.00s)
=== RUN   Test_Mock_Return_NotBefore_Orphan_Call
--- PASS: Test_Mock_Return_NotBefore_Orphan_Call (0.00s)
=== RUN   Test_Mock_findExpectedCall
--- PASS: Test_Mock_findExpectedCall (0.00s)
=== RUN   Test_Mock_findExpectedCall_For_Unknown_Method
--- PASS: Test_Mock_findExpectedCall_For_Unknown_Method (0.00s)
=== RUN   Test_Mock_findExpectedCall_Respects_Repeatability
--- PASS: Test_Mock_findExpectedCall_Respects_Repeatability (0.00s)
=== RUN   Test_callString
--- PASS: Test_callString (0.00s)
=== RUN   Test_Mock_Called
--- PASS: Test_Mock_Called (0.00s)
=== RUN   Test_Mock_Called_blocks
--- PASS: Test_Mock_Called_blocks (0.00s)
=== RUN   Test_Mock_Called_For_Bounded_Repeatability
--- PASS: Test_Mock_Called_For_Bounded_Repeatability (0.00s)
=== RUN   Test_Mock_Called_For_SetTime_Expectation
--- PASS: Test_Mock_Called_For_SetTime_Expectation (0.00s)
=== RUN   Test_Mock_Called_Unexpected
--- PASS: Test_Mock_Called_Unexpected (0.00s)
=== RUN   Test_AssertExpectationsForObjects_Helper
    mock_test.go:1224: Deprecated mock.AssertExpectationsForObjects(myMock.Mock) use mock.AssertExpectationsForObjects(myMock)
    mock_test.go:1224: PASS:  Test_AssertExpectationsForObjects_Helper(int)
    mock_test.go:1224: Deprecated mock.AssertExpectationsForObjects(myMock.Mock) use mock.AssertExpectationsForObjects(myMock)
    mock_test.go:1224: PASS:  Test_AssertExpectationsForObjects_Helper(int)
    mock_test.go:1224: Deprecated mock.AssertExpectationsForObjects(myMock.Mock) use mock.AssertExpectationsForObjects(myMock)
    mock_test.go:1224: PASS:  Test_AssertExpectationsForObjects_Helper(int)
    mock_test.go:1224: Deprecated mock.AssertExpectationsForObjects(myMock.Mock) use mock.AssertExpectationsForObjects(myMock)
    mock_test.go:1225: PASS:  Test_AssertExpectationsForObjects_Helper(int)
    mock_test.go:1225: PASS:  Test_AssertExpectationsForObjects_Helper(int)
    mock_test.go:1225: PASS:  Test_AssertExpectationsForObjects_Helper(int)
--- PASS: Test_AssertExpectationsForObjects_Helper (0.00s)
=== RUN   Test_AssertExpectationsForObjects_Helper_Failed
--- PASS: Test_AssertExpectationsForObjects_Helper_Failed (0.00s)
=== RUN   Test_Mock_AssertExpectations
--- PASS: Test_Mock_AssertExpectations (0.00s)
=== RUN   Test_Mock_AssertExpectations_Placeholder_NoArgs
--- PASS: Test_Mock_AssertExpectations_Placeholder_NoArgs (0.00s)
=== RUN   Test_Mock_AssertExpectations_Placeholder
--- PASS: Test_Mock_AssertExpectations_Placeholder (0.00s)
=== RUN   Test_Mock_AssertExpectations_With_Pointers
--- PASS: Test_Mock_AssertExpectations_With_Pointers (0.00s)
=== RUN   Test_Mock_AssertExpectationsCustomType
--- PASS: Test_Mock_AssertExpectationsCustomType (0.00s)
=== RUN   Test_Mock_AssertExpectations_With_Repeatability
--- PASS: Test_Mock_AssertExpectations_With_Repeatability (0.00s)
=== RUN   Test_Mock_TwoCallsWithDifferentArguments
--- PASS: Test_Mock_TwoCallsWithDifferentArguments (0.00s)
=== RUN   Test_Mock_AssertNumberOfCalls
--- PASS: Test_Mock_AssertNumberOfCalls (0.00s)
=== RUN   Test_Mock_AssertCalled
--- PASS: Test_Mock_AssertCalled (0.00s)
=== RUN   Test_Mock_AssertCalled_WithAnythingOfTypeArgument
--- PASS: Test_Mock_AssertCalled_WithAnythingOfTypeArgument (0.00s)
=== RUN   Test_Mock_AssertCalled_WithArguments
--- PASS: Test_Mock_AssertCalled_WithArguments (0.00s)
=== RUN   Test_Mock_AssertCalled_WithArguments_With_Repeatability
--- PASS: Test_Mock_AssertCalled_WithArguments_With_Repeatability (0.00s)
=== RUN   Test_Mock_AssertNotCalled
--- PASS: Test_Mock_AssertNotCalled (0.00s)
=== RUN   Test_Mock_IsMethodCallable
--- PASS: Test_Mock_IsMethodCallable (0.00s)
=== RUN   TestIsArgsEqual
--- PASS: TestIsArgsEqual (0.00s)
=== RUN   Test_Mock_AssertOptional
--- PASS: Test_Mock_AssertOptional (0.00s)
=== RUN   Test_Arguments_Get
--- PASS: Test_Arguments_Get (0.00s)
=== RUN   Test_Arguments_Is
--- PASS: Test_Arguments_Is (0.00s)
=== RUN   Test_Arguments_Diff
--- PASS: Test_Arguments_Diff (0.00s)
=== RUN   Test_Arguments_Diff_DifferentNumberOfArgs
--- PASS: Test_Arguments_Diff_DifferentNumberOfArgs (0.00s)
=== RUN   Test_Arguments_Diff_WithAnythingArgument
--- PASS: Test_Arguments_Diff_WithAnythingArgument (0.00s)
=== RUN   Test_Arguments_Diff_WithAnythingArgument_InActualToo
--- PASS: Test_Arguments_Diff_WithAnythingArgument_InActualToo (0.00s)
=== RUN   Test_Arguments_Diff_WithAnythingOfTypeArgument
--- PASS: Test_Arguments_Diff_WithAnythingOfTypeArgument (0.00s)
=== RUN   Test_Arguments_Diff_WithAnythingOfTypeArgument_Failing
--- PASS: Test_Arguments_Diff_WithAnythingOfTypeArgument_Failing (0.00s)
=== RUN   Test_Arguments_Diff_WithIsTypeArgument
--- PASS: Test_Arguments_Diff_WithIsTypeArgument (0.00s)
=== RUN   Test_Arguments_Diff_WithIsTypeArgument_Failing
--- PASS: Test_Arguments_Diff_WithIsTypeArgument_Failing (0.00s)
=== RUN   Test_Arguments_Diff_WithArgMatcher
--- PASS: Test_Arguments_Diff_WithArgMatcher (0.00s)
=== RUN   Test_Arguments_Assert
--- PASS: Test_Arguments_Assert (0.00s)
=== RUN   Test_Arguments_String_Representation
--- PASS: Test_Arguments_String_Representation (0.00s)
=== RUN   Test_Arguments_String
--- PASS: Test_Arguments_String (0.00s)
=== RUN   Test_Arguments_Error
--- PASS: Test_Arguments_Error (0.00s)
=== RUN   Test_Arguments_Error_Nil
--- PASS: Test_Arguments_Error_Nil (0.00s)
=== RUN   Test_Arguments_Int
--- PASS: Test_Arguments_Int (0.00s)
=== RUN   Test_Arguments_Bool
--- PASS: Test_Arguments_Bool (0.00s)
=== RUN   Test_WaitUntil_Parallel
--- PASS: Test_WaitUntil_Parallel (0.00s)
=== RUN   Test_MockMethodCalled
    mock_test.go:1741: PASS:  foo(string)
--- PASS: Test_MockMethodCalled (0.00s)
=== RUN   Test_MockMethodCalled_Panic
    mock_test.go:1749: PASS:  foo(string)
--- PASS: Test_MockMethodCalled_Panic (0.00s)
=== RUN   Test_MockReturnAndCalledConcurrent
--- PASS: Test_MockReturnAndCalledConcurrent (0.06s)
=== RUN   TestLoggingAssertExpectations
    mock_test.go:1793: FAIL:  GetTime(int)
            at: [/path/testify/mock/mock_test.go:1805]
    mock_test.go:1793: Expectations didn't match for Mock: *mock.timer
--- PASS: TestLoggingAssertExpectations (0.00s)
=== RUN   TestAfterTotalWaitTimeWhileExecution
--- PASS: TestAfterTotalWaitTimeWhileExecution (0.01s)
=== RUN   TestArgumentMatcherToPrintMismatch
--- PASS: TestArgumentMatcherToPrintMismatch (0.00s)
=== RUN   TestArgumentMatcherToPrintMismatchWithReferenceType
--- PASS: TestArgumentMatcherToPrintMismatchWithReferenceType (0.00s)
=== RUN   TestClosestCallMismatchedArgumentInformationShowsTheClosest
--- PASS: TestClosestCallMismatchedArgumentInformationShowsTheClosest (0.00s)
=== RUN   TestClosestCallFavorsFirstMock
--- PASS: TestClosestCallFavorsFirstMock (0.00s)
=== RUN   TestClosestCallUsesRepeatabilityToFindClosest
--- PASS: TestClosestCallUsesRepeatabilityToFindClosest (0.00s)
=== RUN   TestClosestCallMismatchedArgumentValueInformation
--- PASS: TestClosestCallMismatchedArgumentValueInformation (0.00s)
=== RUN   Test_isBetterMatchThanReturnsFalseIfCandidateCallIsNil
--- PASS: Test_isBetterMatchThanReturnsFalseIfCandidateCallIsNil (0.00s)
=== RUN   Test_isBetterMatchThanReturnsTrueIfOtherCandidateCallIsNil
--- PASS: Test_isBetterMatchThanReturnsTrueIfOtherCandidateCallIsNil (0.00s)
=== RUN   Test_isBetterMatchThanReturnsFalseIfDiffCountIsGreaterThanOther
--- PASS: Test_isBetterMatchThanReturnsFalseIfDiffCountIsGreaterThanOther (0.00s)
=== RUN   Test_isBetterMatchThanReturnsTrueIfDiffCountIsLessThanOther
--- PASS: Test_isBetterMatchThanReturnsTrueIfDiffCountIsLessThanOther (0.00s)
=== RUN   Test_isBetterMatchThanReturnsTrueIfRepeatabilityIsGreaterThanOther
--- PASS: Test_isBetterMatchThanReturnsTrueIfRepeatabilityIsGreaterThanOther (0.00s)
=== RUN   Test_isBetterMatchThanReturnsFalseIfRepeatabilityIsLessThanOrEqualToOther
--- PASS: Test_isBetterMatchThanReturnsFalseIfRepeatabilityIsLessThanOrEqualToOther (0.00s)
=== RUN   TestConcurrentArgumentRead
    mock_test.go:1994: PASS:  Use(*mock.mockCaller)
    mock_test.go:1994: PASS:  Call()
--- PASS: TestConcurrentArgumentRead (0.00s)
PASS
ok    github.com/stretchr/testify/mock  0.121s
=== RUN   TestImplementsWrapper
--- PASS: TestImplementsWrapper (0.00s)
=== RUN   TestIsTypeWrapper
--- PASS: TestIsTypeWrapper (0.00s)
=== RUN   TestEqualWrapper
--- PASS: TestEqualWrapper (0.00s)
=== RUN   TestNotEqualWrapper
--- PASS: TestNotEqualWrapper (0.00s)
=== RUN   TestExactlyWrapper
--- PASS: TestExactlyWrapper (0.00s)
=== RUN   TestNotNilWrapper
--- PASS: TestNotNilWrapper (0.00s)
=== RUN   TestNilWrapper
--- PASS: TestNilWrapper (0.00s)
=== RUN   TestTrueWrapper
--- PASS: TestTrueWrapper (0.00s)
=== RUN   TestFalseWrapper
--- PASS: TestFalseWrapper (0.00s)
=== RUN   TestContainsWrapper
--- PASS: TestContainsWrapper (0.00s)
=== RUN   TestNotContainsWrapper
--- PASS: TestNotContainsWrapper (0.00s)
=== RUN   TestPanicsWrapper
--- PASS: TestPanicsWrapper (0.00s)
=== RUN   TestNotPanicsWrapper
--- PASS: TestNotPanicsWrapper (0.00s)
=== RUN   TestNoErrorWrapper
--- PASS: TestNoErrorWrapper (0.00s)
=== RUN   TestErrorWrapper
--- PASS: TestErrorWrapper (0.00s)
=== RUN   TestErrorContainsWrapper
--- PASS: TestErrorContainsWrapper (0.00s)
=== RUN   TestEqualErrorWrapper
--- PASS: TestEqualErrorWrapper (0.00s)
=== RUN   TestEmptyWrapper
--- PASS: TestEmptyWrapper (0.00s)
=== RUN   TestNotEmptyWrapper
--- PASS: TestNotEmptyWrapper (0.00s)
=== RUN   TestWithinDurationWrapper
--- PASS: TestWithinDurationWrapper (0.00s)
=== RUN   TestInDeltaWrapper
--- PASS: TestInDeltaWrapper (0.00s)
=== RUN   TestZeroWrapper
--- PASS: TestZeroWrapper (0.00s)
=== RUN   TestNotZeroWrapper
--- PASS: TestNotZeroWrapper (0.00s)
=== RUN   TestJSONEqWrapper_EqualSONString
--- PASS: TestJSONEqWrapper_EqualSONString (0.00s)
=== RUN   TestJSONEqWrapper_EquivalentButNotEqual
--- PASS: TestJSONEqWrapper_EquivalentButNotEqual (0.00s)
=== RUN   TestJSONEqWrapper_HashOfArraysAndHashes
--- PASS: TestJSONEqWrapper_HashOfArraysAndHashes (0.00s)
=== RUN   TestJSONEqWrapper_Array
--- PASS: TestJSONEqWrapper_Array (0.00s)
=== RUN   TestJSONEqWrapper_HashAndArrayNotEquivalent
--- PASS: TestJSONEqWrapper_HashAndArrayNotEquivalent (0.00s)
=== RUN   TestJSONEqWrapper_HashesNotEquivalent
--- PASS: TestJSONEqWrapper_HashesNotEquivalent (0.00s)
=== RUN   TestJSONEqWrapper_ActualIsNotJSON
--- PASS: TestJSONEqWrapper_ActualIsNotJSON (0.00s)
=== RUN   TestJSONEqWrapper_ExpectedIsNotJSON
--- PASS: TestJSONEqWrapper_ExpectedIsNotJSON (0.00s)
=== RUN   TestJSONEqWrapper_ExpectedAndActualNotJSON
--- PASS: TestJSONEqWrapper_ExpectedAndActualNotJSON (0.00s)
=== RUN   TestJSONEqWrapper_ArraysOfDifferentOrder
--- PASS: TestJSONEqWrapper_ArraysOfDifferentOrder (0.00s)
=== RUN   TestYAMLEqWrapper_EqualYAMLString
--- PASS: TestYAMLEqWrapper_EqualYAMLString (0.00s)
=== RUN   TestYAMLEqWrapper_EquivalentButNotEqual
--- PASS: TestYAMLEqWrapper_EquivalentButNotEqual (0.00s)
=== RUN   TestYAMLEqWrapper_HashOfArraysAndHashes
--- PASS: TestYAMLEqWrapper_HashOfArraysAndHashes (0.00s)
=== RUN   TestYAMLEqWrapper_Array
--- PASS: TestYAMLEqWrapper_Array (0.00s)
=== RUN   TestYAMLEqWrapper_HashAndArrayNotEquivalent
--- PASS: TestYAMLEqWrapper_HashAndArrayNotEquivalent (0.00s)
=== RUN   TestYAMLEqWrapper_HashesNotEquivalent
--- PASS: TestYAMLEqWrapper_HashesNotEquivalent (0.00s)
=== RUN   TestYAMLEqWrapper_ActualIsSimpleString
--- PASS: TestYAMLEqWrapper_ActualIsSimpleString (0.00s)
=== RUN   TestYAMLEqWrapper_ExpectedIsSimpleString
--- PASS: TestYAMLEqWrapper_ExpectedIsSimpleString (0.00s)
=== RUN   TestYAMLEqWrapper_ExpectedAndActualSimpleString
--- PASS: TestYAMLEqWrapper_ExpectedAndActualSimpleString (0.00s)
=== RUN   TestYAMLEqWrapper_ArraysOfDifferentOrder
--- PASS: TestYAMLEqWrapper_ArraysOfDifferentOrder (0.00s)
=== RUN   TestImplements
--- PASS: TestImplements (0.00s)
=== RUN   TestIsType
--- PASS: TestIsType (0.00s)
=== RUN   TestEqual
--- PASS: TestEqual (0.00s)
=== RUN   TestNotEqual
--- PASS: TestNotEqual (0.00s)
=== RUN   TestExactly
--- PASS: TestExactly (0.00s)
=== RUN   TestNotNil
--- PASS: TestNotNil (0.00s)
=== RUN   TestNil
--- PASS: TestNil (0.00s)
=== RUN   TestTrue
--- PASS: TestTrue (0.00s)
=== RUN   TestFalse
--- PASS: TestFalse (0.00s)
=== RUN   TestContains
--- PASS: TestContains (0.00s)
=== RUN   TestNotContains
--- PASS: TestNotContains (0.00s)
=== RUN   TestPanics
--- PASS: TestPanics (0.00s)
=== RUN   TestNotPanics
--- PASS: TestNotPanics (0.00s)
=== RUN   TestNoError
--- PASS: TestNoError (0.00s)
=== RUN   TestError
--- PASS: TestError (0.00s)
=== RUN   TestErrorContains
--- PASS: TestErrorContains (0.00s)
=== RUN   TestEqualError
--- PASS: TestEqualError (0.00s)
=== RUN   TestEmpty
--- PASS: TestEmpty (0.00s)
=== RUN   TestNotEmpty
--- PASS: TestNotEmpty (0.00s)
=== RUN   TestWithinDuration
--- PASS: TestWithinDuration (0.00s)
=== RUN   TestInDelta
--- PASS: TestInDelta (0.00s)
=== RUN   TestZero
--- PASS: TestZero (0.00s)
=== RUN   TestNotZero
--- PASS: TestNotZero (0.00s)
=== RUN   TestJSONEq_EqualSONString
--- PASS: TestJSONEq_EqualSONString (0.00s)
=== RUN   TestJSONEq_EquivalentButNotEqual
--- PASS: TestJSONEq_EquivalentButNotEqual (0.00s)
=== RUN   TestJSONEq_HashOfArraysAndHashes
--- PASS: TestJSONEq_HashOfArraysAndHashes (0.00s)
=== RUN   TestJSONEq_Array
--- PASS: TestJSONEq_Array (0.00s)
=== RUN   TestJSONEq_HashAndArrayNotEquivalent
--- PASS: TestJSONEq_HashAndArrayNotEquivalent (0.00s)
=== RUN   TestJSONEq_HashesNotEquivalent
--- PASS: TestJSONEq_HashesNotEquivalent (0.00s)
=== RUN   TestJSONEq_ActualIsNotJSON
--- PASS: TestJSONEq_ActualIsNotJSON (0.00s)
=== RUN   TestJSONEq_ExpectedIsNotJSON
--- PASS: TestJSONEq_ExpectedIsNotJSON (0.00s)
=== RUN   TestJSONEq_ExpectedAndActualNotJSON
--- PASS: TestJSONEq_ExpectedAndActualNotJSON (0.00s)
=== RUN   TestJSONEq_ArraysOfDifferentOrder
--- PASS: TestJSONEq_ArraysOfDifferentOrder (0.00s)
=== RUN   TestYAMLEq_EqualYAMLString
--- PASS: TestYAMLEq_EqualYAMLString (0.00s)
=== RUN   TestYAMLEq_EquivalentButNotEqual
--- PASS: TestYAMLEq_EquivalentButNotEqual (0.00s)
=== RUN   TestYAMLEq_HashOfArraysAndHashes
--- PASS: TestYAMLEq_HashOfArraysAndHashes (0.00s)
=== RUN   TestYAMLEq_Array
--- PASS: TestYAMLEq_Array (0.00s)
=== RUN   TestYAMLEq_HashAndArrayNotEquivalent
--- PASS: TestYAMLEq_HashAndArrayNotEquivalent (0.00s)
=== RUN   TestYAMLEq_HashesNotEquivalent
--- PASS: TestYAMLEq_HashesNotEquivalent (0.00s)
=== RUN   TestYAMLEq_ActualIsSimpleString
--- PASS: TestYAMLEq_ActualIsSimpleString (0.00s)
=== RUN   TestYAMLEq_ExpectedIsSimpleString
--- PASS: TestYAMLEq_ExpectedIsSimpleString (0.00s)
=== RUN   TestYAMLEq_ExpectedAndActualSimpleString
--- PASS: TestYAMLEq_ExpectedAndActualSimpleString (0.00s)
=== RUN   TestYAMLEq_ArraysOfDifferentOrder
--- PASS: TestYAMLEq_ArraysOfDifferentOrder (0.00s)
=== RUN   TestComparisonAssertionFunc
=== RUN   TestComparisonAssertionFunc/implements
=== RUN   TestComparisonAssertionFunc/isType
=== RUN   TestComparisonAssertionFunc/equal
=== RUN   TestComparisonAssertionFunc/equalValues
=== RUN   TestComparisonAssertionFunc/exactly
=== RUN   TestComparisonAssertionFunc/notEqual
=== RUN   TestComparisonAssertionFunc/NotEqualValues
=== RUN   TestComparisonAssertionFunc/notContains
=== RUN   TestComparisonAssertionFunc/subset
=== RUN   TestComparisonAssertionFunc/notSubset
=== RUN   TestComparisonAssertionFunc/elementsMatch
=== RUN   TestComparisonAssertionFunc/regexp
=== RUN   TestComparisonAssertionFunc/notRegexp
--- PASS: TestComparisonAssertionFunc (0.00s)
    --- PASS: TestComparisonAssertionFunc/implements (0.00s)
    --- PASS: TestComparisonAssertionFunc/isType (0.00s)
    --- PASS: TestComparisonAssertionFunc/equal (0.00s)
    --- PASS: TestComparisonAssertionFunc/equalValues (0.00s)
    --- PASS: TestComparisonAssertionFunc/exactly (0.00s)
    --- PASS: TestComparisonAssertionFunc/notEqual (0.00s)
    --- PASS: TestComparisonAssertionFunc/NotEqualValues (0.00s)
    --- PASS: TestComparisonAssertionFunc/notContains (0.00s)
    --- PASS: TestComparisonAssertionFunc/subset (0.00s)
    --- PASS: TestComparisonAssertionFunc/notSubset (0.00s)
    --- PASS: TestComparisonAssertionFunc/elementsMatch (0.00s)
    --- PASS: TestComparisonAssertionFunc/regexp (0.00s)
    --- PASS: TestComparisonAssertionFunc/notRegexp (0.00s)
=== RUN   TestValueAssertionFunc
=== RUN   TestValueAssertionFunc/notNil
=== RUN   TestValueAssertionFunc/nil
=== RUN   TestValueAssertionFunc/empty
=== RUN   TestValueAssertionFunc/notEmpty
=== RUN   TestValueAssertionFunc/zero
=== RUN   TestValueAssertionFunc/notZero
--- PASS: TestValueAssertionFunc (0.00s)
    --- PASS: TestValueAssertionFunc/notNil (0.00s)
    --- PASS: TestValueAssertionFunc/nil (0.00s)
    --- PASS: TestValueAssertionFunc/empty (0.00s)
    --- PASS: TestValueAssertionFunc/notEmpty (0.00s)
    --- PASS: TestValueAssertionFunc/zero (0.00s)
    --- PASS: TestValueAssertionFunc/notZero (0.00s)
=== RUN   TestBoolAssertionFunc
=== RUN   TestBoolAssertionFunc/true
=== RUN   TestBoolAssertionFunc/false
--- PASS: TestBoolAssertionFunc (0.00s)
    --- PASS: TestBoolAssertionFunc/true (0.00s)
    --- PASS: TestBoolAssertionFunc/false (0.00s)
=== RUN   TestErrorAssertionFunc
=== RUN   TestErrorAssertionFunc/noError
=== RUN   TestErrorAssertionFunc/error
--- PASS: TestErrorAssertionFunc (0.00s)
    --- PASS: TestErrorAssertionFunc/noError (0.00s)
    --- PASS: TestErrorAssertionFunc/error (0.00s)
PASS
ok    github.com/stretchr/testify/require 0.039s
=== RUN   TestPassedReturnsTrueWhenAllTestsPass
--- PASS: TestPassedReturnsTrueWhenAllTestsPass (0.00s)
=== RUN   TestPassedReturnsFalseWhenSomeTestFails
--- PASS: TestPassedReturnsFalseWhenSomeTestFails (0.00s)
=== RUN   TestSuiteRequireTwice
=== RUN   TestSuiteRequireTwice
=== RUN   TestSuiteRequireTwice/TestRequireOne
    suite_test.go:42: 
          Error Trace:  /path/testify/suite/suite_test.go:42
          Error:        Not equal: 
                        expected: 1
                        actual  : 2
          Test:         TestSuiteRequireTwice/TestRequireOne
=== RUN   TestSuiteRequireTwice/TestRequireTwo
    suite_test.go:47: 
          Error Trace:  /path/testify/suite/suite_test.go:47
          Error:        Not equal: 
                        expected: 1
                        actual  : 2
          Test:         TestSuiteRequireTwice/TestRequireTwo
--- FAIL: TestSuiteRequireTwice (0.00s)
    --- FAIL: TestSuiteRequireTwice/TestRequireOne (0.00s)
    --- FAIL: TestSuiteRequireTwice/TestRequireTwo (0.00s)
--- PASS: TestSuiteRequireTwice (0.00s)
=== RUN   TestSuiteRecoverPanic
=== RUN   TestPanicInSetupSuite
    suite.go:77: test panicked: oops in setup suite
        goroutine 13 [running]:
        runtime/debug.Stack()
          /usr/lib/go-1.17/src/runtime/debug/stack.go:24 +0x72
        github.com/stretchr/testify/suite.failOnPanic(0xc000102d00, {0x928160, 0xa03d88})
          /path/testify/suite/suite.go:77 +0x45
        github.com/stretchr/testify/suite.recoverAndFailOnPanic(0xc000102000)
          /path/testify/suite/suite.go:72 +0x3f
        panic({0x928160, 0xa03d88})
          /usr/lib/go-1.17/src/runtime/panic.go:1047 +0x266
        github.com/stretchr/testify/suite.(*panickingSuite).SetupSuite(0xc0000898c0)
          /path/testify/suite/suite_test.go:63 +0x65
        github.com/stretchr/testify/suite.Run(0xc000102d00, {0xa0b720, 0xc0000898c0})
          /path/testify/suite/suite.go:132 +0x5b8
        github.com/stretchr/testify/suite.TestSuiteRecoverPanic.func1(0x0)
          /path/testify/suite/suite_test.go:108 +0xad
        testing.tRunner(0xc000102d00, 0x9a6408)
          /usr/lib/go-1.17/src/testing/testing.go:1259 +0x230
        created by testing.(*T).Run
          /usr/lib/go-1.17/src/testing/testing.go:1306 +0x727
--- FAIL: TestPanicInSetupSuite (0.01s)
=== RUN   TestPanicInSetupTest
=== RUN   TestPanicInSetupTest/Test
    suite.go:77: test panicked: oops in setup test
        goroutine 52 [running]:
        runtime/debug.Stack()
          /usr/lib/go-1.17/src/runtime/debug/stack.go:24 +0x72
        github.com/stretchr/testify/suite.failOnPanic(0xc0005024e0, {0x928160, 0xa03d98})
          /path/testify/suite/suite.go:77 +0x45
        github.com/stretchr/testify/suite.Run.func1.1()
          /path/testify/suite/suite.go:161 +0x34b
        panic({0x928160, 0xa03d98})
          /usr/lib/go-1.17/src/runtime/panic.go:1047 +0x266
        github.com/stretchr/testify/suite.(*panickingSuite).SetupTest(0xc0003b0040)
          /path/testify/suite/suite_test.go:69 +0x65
        github.com/stretchr/testify/suite.Run.func1(0xc0005024e0)
          /path/testify/suite/suite.go:165 +0x273
        testing.tRunner(0xc0005024e0, 0xc00024a000)
          /usr/lib/go-1.17/src/testing/testing.go:1259 +0x230
        created by testing.(*T).Run
          /usr/lib/go-1.17/src/testing/testing.go:1306 +0x727
--- FAIL: TestPanicInSetupTest (0.00s)
    --- FAIL: TestPanicInSetupTest/Test (0.00s)
=== RUN   TestPanicInBeforeTest
=== RUN   TestPanicInBeforeTest/Test
    suite.go:77: test panicked: oops in before test
        goroutine 54 [running]:
        runtime/debug.Stack()
          /usr/lib/go-1.17/src/runtime/debug/stack.go:24 +0x72
        github.com/stretchr/testify/suite.failOnPanic(0xc0005029c0, {0x928160, 0xa03da8})
          /path/testify/suite/suite.go:77 +0x45
        github.com/stretchr/testify/suite.Run.func1.1()
          /path/testify/suite/suite.go:161 +0x34b
        panic({0x928160, 0xa03da8})
          /usr/lib/go-1.17/src/runtime/panic.go:1047 +0x266
        github.com/stretchr/testify/suite.(*panickingSuite).BeforeTest(0xc0003b0e80, {0xa0b720, 0xc0003b0e80}, {0x4872b7, 0xbcc280})
          /path/testify/suite/suite_test.go:75 +0x65
        github.com/stretchr/testify/suite.Run.func1(0xc0005029c0)
          /path/testify/suite/suite.go:168 +0x319
        testing.tRunner(0xc0005029c0, 0xc00024a090)
          /usr/lib/go-1.17/src/testing/testing.go:1259 +0x230
        created by testing.(*T).Run
          /usr/lib/go-1.17/src/testing/testing.go:1306 +0x727
--- FAIL: TestPanicInBeforeTest (0.00s)
    --- FAIL: TestPanicInBeforeTest/Test (0.00s)
=== RUN   TestPanicInTest
=== RUN   TestPanicInTest/Test
    suite.go:77: test panicked: oops in test
        goroutine 56 [running]:
        runtime/debug.Stack()
          /usr/lib/go-1.17/src/runtime/debug/stack.go:24 +0x72
        github.com/stretchr/testify/suite.failOnPanic(0xc000483860, {0x928160, 0xa03db8})
          /path/testify/suite/suite.go:77 +0x45
        github.com/stretchr/testify/suite.Run.func1.1()
          /path/testify/suite/suite.go:161 +0x34b
        panic({0x928160, 0xa03db8})
          /usr/lib/go-1.17/src/runtime/panic.go:1047 +0x266
        github.com/stretchr/testify/suite.(*panickingSuite).Test(0xc0003b1c80)
          /path/testify/suite/suite_test.go:81 +0x65
        reflect.Value.call({0xc0003dc3c0, 0xc00058c8c0, 0x4a04e5}, {0x98b749, 0x4}, {0xc00006dda8, 0x1, 0xc00006dbc8})
          /usr/lib/go-1.17/src/reflect/value.go:556 +0xe7d
        reflect.Value.Call({0xc0003dc3c0, 0xc00058c8c0, 0xc0003b1c80}, {0xc00006dda8, 0x1, 0x1})
          /usr/lib/go-1.17/src/reflect/value.go:339 +0xd8
        github.com/stretchr/testify/suite.Run.func1(0xc000483860)
          /path/testify/suite/suite.go:175 +0x71d
        testing.tRunner(0xc000483860, 0xc000220000)
          /usr/lib/go-1.17/src/testing/testing.go:1259 +0x230
        created by testing.(*T).Run
          /usr/lib/go-1.17/src/testing/testing.go:1306 +0x727
--- FAIL: TestPanicInTest (0.00s)
    --- FAIL: TestPanicInTest/Test (0.00s)
=== RUN   TestPanicInAfterTest
=== RUN   TestPanicInAfterTest/Test
    suite.go:77: test panicked: oops in after test
        goroutine 58 [running]:
        runtime/debug.Stack()
          /usr/lib/go-1.17/src/runtime/debug/stack.go:24 +0x72
        github.com/stretchr/testify/suite.failOnPanic(0xc000483ba0, {0x928160, 0xa03c68})
          /path/testify/suite/suite.go:77 +0x45
        github.com/stretchr/testify/suite.recoverAndFailOnPanic(0xc000502680)
          /path/testify/suite/suite.go:72 +0x3f
        panic({0x928160, 0xa03c68})
          /usr/lib/go-1.17/src/runtime/panic.go:1047 +0x266
        github.com/stretchr/testify/suite.(*panickingSuite).AfterTest(0xc0003b0dc0, {0xa0b720, 0xc0003b0dc0}, {0x0, 0x0})
          /path/testify/suite/suite_test.go:87 +0x65
        github.com/stretchr/testify/suite.Run.func1.1()
          /path/testify/suite/suite.go:153 +0x2f5
        github.com/stretchr/testify/suite.Run.func1(0xc000483ba0)
          /path/testify/suite/suite.go:176 +0x720
        testing.tRunner(0xc000483ba0, 0xc000220090)
          /usr/lib/go-1.17/src/testing/testing.go:1259 +0x230
        created by testing.(*T).Run
          /usr/lib/go-1.17/src/testing/testing.go:1306 +0x727
--- FAIL: TestPanicInAfterTest (0.00s)
    --- FAIL: TestPanicInAfterTest/Test (0.00s)
=== RUN   TestPanicInTearDownTest
=== RUN   TestPanicInTearDownTest/Test
    suite.go:77: test panicked: oops in tear down test
        goroutine 60 [running]:
        runtime/debug.Stack()
          /usr/lib/go-1.17/src/runtime/debug/stack.go:24 +0x72
        github.com/stretchr/testify/suite.failOnPanic(0xc000483860, {0x928160, 0xa03c78})
          /path/testify/suite/suite.go:77 +0x45
        github.com/stretchr/testify/suite.recoverAndFailOnPanic(0xc000502680)
          /path/testify/suite/suite.go:72 +0x3f
        panic({0x928160, 0xa03c78})
          /usr/lib/go-1.17/src/runtime/panic.go:1047 +0x266
        github.com/stretchr/testify/suite.(*panickingSuite).TearDownTest(0xc0003b1bc0)
          /path/testify/suite/suite_test.go:93 +0x65
        github.com/stretchr/testify/suite.Run.func1.1()
          /path/testify/suite/suite.go:157 +0x319
        github.com/stretchr/testify/suite.Run.func1(0xc000483860)
          /path/testify/suite/suite.go:176 +0x720
        testing.tRunner(0xc000483860, 0xc00021c000)
          /usr/lib/go-1.17/src/testing/testing.go:1259 +0x230
        created by testing.(*T).Run
          /usr/lib/go-1.17/src/testing/testing.go:1306 +0x727
--- FAIL: TestPanicInTearDownTest (0.00s)
    --- FAIL: TestPanicInTearDownTest/Test (0.00s)
=== RUN   TestPanicInTearDownSuite
=== RUN   TestPanicInTearDownSuite/Test
=== CONT  TestPanicInTearDownSuite
    suite.go:77: test panicked: oops in tear down suite
        goroutine 61 [running]:
        runtime/debug.Stack()
          /usr/lib/go-1.17/src/runtime/debug/stack.go:24 +0x72
        github.com/stretchr/testify/suite.failOnPanic(0xc000483a00, {0x928160, 0xa03c88})
          /path/testify/suite/suite.go:77 +0x45
        github.com/stretchr/testify/suite.recoverAndFailOnPanic(0xc000102000)
          /path/testify/suite/suite.go:72 +0x3f
        panic({0x928160, 0xa03c88})
          /usr/lib/go-1.17/src/runtime/panic.go:1047 +0x266
        github.com/stretchr/testify/suite.(*panickingSuite).TearDownSuite(0xc0003b0dc0)
          /path/testify/suite/suite_test.go:99 +0x65
        github.com/stretchr/testify/suite.Run.func2()
          /path/testify/suite/suite.go:183 +0x8e
        github.com/stretchr/testify/suite.Run(0xc000483a00, {0xa0b720, 0xc0003b0dc0})
          /path/testify/suite/suite.go:194 +0x996
        github.com/stretchr/testify/suite.TestSuiteRecoverPanic.func7(0x0)
          /path/testify/suite/suite_test.go:132 +0xad
        testing.tRunner(0xc000483a00, 0x9a6438)
          /usr/lib/go-1.17/src/testing/testing.go:1259 +0x230
        created by testing.(*T).Run
          /usr/lib/go-1.17/src/testing/testing.go:1306 +0x727
--- FAIL: TestPanicInTearDownSuite (0.00s)
    --- PASS: TestPanicInTearDownSuite/Test (0.00s)
--- PASS: TestSuiteRecoverPanic (0.02s)
=== RUN   TestRunSuite
=== RUN   TestRunSuite/TestOne
=== RUN   TestRunSuite/TestSkip
    suite_test.go:227: 
=== RUN   TestRunSuite/TestSubtest
=== RUN   TestRunSuite/TestSubtest/first
=== RUN   TestRunSuite/TestSubtest/second
=== RUN   TestRunSuite/TestTwo
=== CONT  TestRunSuite
    suite_test.go:269: 
--- SKIP: TestRunSuite (0.01s)
    --- PASS: TestRunSuite/TestOne (0.00s)
    --- SKIP: TestRunSuite/TestSkip (0.00s)
    --- PASS: TestRunSuite/TestSubtest (0.00s)
        --- PASS: TestRunSuite/TestSubtest/first (0.00s)
        --- PASS: TestRunSuite/TestSubtest/second (0.00s)
    --- PASS: TestRunSuite/TestTwo (0.00s)
=== RUN   TestSkippingSuiteSetup
    suite.go:207: warning: no tests to run
--- PASS: TestSkippingSuiteSetup (0.00s)
=== RUN   TestSuiteGetters
--- PASS: TestSuiteGetters (0.00s)
=== RUN   TestSuiteLogging
--- PASS: TestSuiteLogging (0.00s)
=== RUN   TestSuiteCallOrder
=== RUN   TestSuiteCallOrder/Test_A
=== RUN   TestSuiteCallOrder/Test_B
--- PASS: TestSuiteCallOrder (0.84s)
    --- PASS: TestSuiteCallOrder/Test_A (0.19s)
    --- PASS: TestSuiteCallOrder/Test_B (0.22s)
=== RUN   TestSuiteWithStats
=== RUN   WithStats
=== RUN   WithStats/TestPanic
    suite.go:77: test panicked: oops
        goroutine 31 [running]:
        runtime/debug.Stack()
          /usr/lib/go-1.17/src/runtime/debug/stack.go:24 +0x72
        github.com/stretchr/testify/suite.failOnPanic(0xc000502d00, {0x928160, 0xa03d38})
          /path/testify/suite/suite.go:77 +0x45
        github.com/stretchr/testify/suite.Run.func1.1()
          /path/testify/suite/suite.go:161 +0x34b
        panic({0x928160, 0xa03d38})
          /usr/lib/go-1.17/src/runtime/panic.go:1047 +0x266
        github.com/stretchr/testify/suite.(*suiteWithStats).TestPanic(0x3600000000000000)
          /path/testify/suite/suite_test.go:505 +0x31
        reflect.Value.call({0xc000595b00, 0xc000690cb0, 0xc00009fd40}, {0x98b749, 0x4}, {0xc00006dda8, 0x1, 0xc00006dbc8})
          /usr/lib/go-1.17/src/reflect/value.go:556 +0xe7d
        reflect.Value.Call({0xc000595b00, 0xc000690cb0, 0x90cef1}, {0xc00006dda8, 0x1, 0x1})
          /usr/lib/go-1.17/src/reflect/value.go:339 +0xd8
        github.com/stretchr/testify/suite.Run.func1(0xc000502d00)
          /path/testify/suite/suite.go:175 +0x71d
        testing.tRunner(0xc000502d00, 0xc0002f4000)
          /usr/lib/go-1.17/src/testing/testing.go:1259 +0x230
        created by testing.(*T).Run
          /usr/lib/go-1.17/src/testing/testing.go:1306 +0x727
=== RUN   WithStats/TestSomething
--- FAIL: WithStats (0.01s)
    --- FAIL: WithStats/TestPanic (0.00s)
    --- PASS: WithStats/TestSomething (0.00s)
--- PASS: TestSuiteWithStats (0.01s)
=== RUN   TestFailfastSuite
=== RUN   TestFailfastSuite
=== RUN   TestFailfastSuite/Test_A_Fails
    suite_test.go:600: Test A meant to fail
=== RUN   TestFailfastSuite/Test_B_Passes
--- FAIL: TestFailfastSuite (0.01s)
    --- FAIL: TestFailfastSuite/Test_A_Fails (0.00s)
    --- PASS: TestFailfastSuite/Test_B_Passes (0.00s)
--- PASS: TestFailfastSuite (0.01s)
=== RUN   TestFailfastSuiteFailFastOn
    suite_test.go:575: Running go test -v -race -run TestFailfastSuite -failfast
    suite_test.go:577: === RUN   TestFailfastSuite
        === RUN   TestFailfastSuite
        === RUN   TestFailfastSuite/Test_A_Fails
            suite_test.go:600: Test A meant to fail
        --- FAIL: TestFailfastSuite (0.00s)
            --- FAIL: TestFailfastSuite/Test_A_Fails (0.00s)
        --- PASS: TestFailfastSuite (0.00s)
        PASS
        ok    github.com/stretchr/testify/suite 0.033s
        
--- PASS: TestFailfastSuiteFailFastOn (0.31s)
PASS
ok    github.com/stretchr/testify/suite 1.241s
FAIL

What? 😕 Didn't the tests just pass?
Sadly, I don't have the exit code - and I most definitely don't know what failed; so let's replicate
Maybe without -v first:

testify$ go test -race ./...
ok    github.com/stretchr/testify 0.018s
ok    github.com/stretchr/testify/assert  0.442s
?     github.com/stretchr/testify/http  [no test files]
ok    github.com/stretchr/testify/mock  0.130s
ok    github.com/stretchr/testify/require 0.038s
ok    github.com/stretchr/testify/suite 1.200s
testify$ echo $?
0

WAT? 😑

Okay, maybe I have to have -v; but I ain't seeing that whole output!

testify$ go test -v -race ./... | tail -n 10
            suite_test.go:600: Test A meant to fail
        --- FAIL: TestFailfastSuite (0.00s)
            --- FAIL: TestFailfastSuite/Test_A_Fails (0.00s)
        --- PASS: TestFailfastSuite (0.00s)
        PASS
        ok    github.com/stretchr/testify/suite 0.033s
        
--- PASS: TestFailfastSuiteFailFastOn (0.31s)
PASS
ok    github.com/stretchr/testify/suite (cached)
testify$ go test -v -count=1 -race ./... | tail -n 10
            suite_test.go:600: Test A meant to fail
        --- FAIL: TestFailfastSuite (0.00s)
            --- FAIL: TestFailfastSuite/Test_A_Fails (0.00s)
        --- PASS: TestFailfastSuite (0.00s)
        PASS
        ok    github.com/stretchr/testify/suite 0.029s
        
--- PASS: TestFailfastSuiteFailFastOn (0.28s)
PASS
ok    github.com/stretchr/testify/suite 1.209s
testify$ echo $?
0

WAT? 🤯

Okay, maybe I have to have -v and read all the output too

testify$ go test -v -race ./... 
=== RUN   TestImports
--- PASS: TestImports (0.00s)
PASS
ok    github.com/stretchr/testify (cached)
=== RUN   TestCompare17
--- PASS: TestCompare17 (0.00s)
=== RUN   TestGreater17
--- PASS: TestGreater17 (0.00s)
=== RUN   TestGreaterOrEqual17
--- PASS: TestGreaterOrEqual17 (0.00s)
=== RUN   TestLess17
--- PASS: TestLess17 (0.00s)
=== RUN   TestLessOrEqual17
--- PASS: TestLessOrEqual17 (0.00s)
=== RUN   TestCompare
--- PASS: TestCompare (0.00s)
=== RUN   TestGreater
--- PASS: TestGreater (0.00s)
=== RUN   TestGreaterOrEqual
--- PASS: TestGreaterOrEqual (0.00s)
=== RUN   TestLess
--- PASS: TestLess (0.00s)
=== RUN   TestLessOrEqual
--- PASS: TestLessOrEqual (0.00s)
=== RUN   TestPositive
--- PASS: TestPositive (0.00s)
=== RUN   TestNegative
--- PASS: TestNegative (0.00s)
=== RUN   Test_compareTwoValuesDifferentValuesTypes
--- PASS: Test_compareTwoValuesDifferentValuesTypes (0.00s)
=== RUN   Test_compareTwoValuesNotComparableValues
--- PASS: Test_compareTwoValuesNotComparableValues (0.00s)
=== RUN   Test_compareTwoValuesCorrectCompareResult
--- PASS: Test_compareTwoValuesCorrectCompareResult (0.00s)
=== RUN   Test_containsValue
--- PASS: Test_containsValue (0.00s)
=== RUN   TestComparingMsgAndArgsForwarding
--- PASS: TestComparingMsgAndArgsForwarding (0.00s)
=== RUN   TestIsIncreasing
--- PASS: TestIsIncreasing (0.00s)
=== RUN   TestIsNonIncreasing
--- PASS: TestIsNonIncreasing (0.00s)
=== RUN   TestIsDecreasing
--- PASS: TestIsDecreasing (0.00s)
=== RUN   TestIsNonDecreasing
--- PASS: TestIsNonDecreasing (0.00s)
=== RUN   TestOrderingMsgAndArgsForwarding
--- PASS: TestOrderingMsgAndArgsForwarding (0.00s)
=== RUN   TestObjectsAreEqual
=== RUN   TestObjectsAreEqual/ObjectsAreEqual("Hello_World",_"Hello_World")
=== RUN   TestObjectsAreEqual/ObjectsAreEqual(123,_123)
=== RUN   TestObjectsAreEqual/ObjectsAreEqual(123.5,_123.5)
=== RUN   TestObjectsAreEqual/ObjectsAreEqual([]byte{0x48,_0x65,_0x6c,_0x6c,_0x6f,_0x20,_0x57,_0x6f,_0x72,_0x6c,_0x64},_[]byte{0x48,_0x65,_0x6c,_0x6c,_0x6f,_0x20,_0x57,_0x6f,_0x72,_0x6c,_0x64})
=== RUN   TestObjectsAreEqual/ObjectsAreEqual(<nil>,_<nil>)
=== RUN   TestObjectsAreEqual/ObjectsAreEqual(map[int]int{5:10},_map[int]int{10:20})
=== RUN   TestObjectsAreEqual/ObjectsAreEqual(120,_"x")
=== RUN   TestObjectsAreEqual/ObjectsAreEqual("x",_120)
=== RUN   TestObjectsAreEqual/ObjectsAreEqual(0,_0.1)
=== RUN   TestObjectsAreEqual/ObjectsAreEqual(0.1,_0)
=== RUN   TestObjectsAreEqual/ObjectsAreEqual((func()_time.Time)(0x4c3380),_(func()_time.Time)(0x4c3380))
=== RUN   TestObjectsAreEqual/ObjectsAreEqual((func())(0x720c00),_(func())(0x720c20))
=== RUN   TestObjectsAreEqual/ObjectsAreEqual(0xa,_10)
--- PASS: TestObjectsAreEqual (0.00s)
    --- PASS: TestObjectsAreEqual/ObjectsAreEqual("Hello_World",_"Hello_World") (0.00s)
    --- PASS: TestObjectsAreEqual/ObjectsAreEqual(123,_123) (0.00s)
    --- PASS: TestObjectsAreEqual/ObjectsAreEqual(123.5,_123.5) (0.00s)
    --- PASS: TestObjectsAreEqual/ObjectsAreEqual([]byte{0x48,_0x65,_0x6c,_0x6c,_0x6f,_0x20,_0x57,_0x6f,_0x72,_0x6c,_0x64},_[]byte{0x48,_0x65,_0x6c,_0x6c,_0x6f,_0x20,_0x57,_0x6f,_0x72,_0x6c,_0x64}) (0.00s)
    --- PASS: TestObjectsAreEqual/ObjectsAreEqual(<nil>,_<nil>) (0.00s)
    --- PASS: TestObjectsAreEqual/ObjectsAreEqual(map[int]int{5:10},_map[int]int{10:20}) (0.00s)
    --- PASS: TestObjectsAreEqual/ObjectsAreEqual(120,_"x") (0.00s)
    --- PASS: TestObjectsAreEqual/ObjectsAreEqual("x",_120) (0.00s)
    --- PASS: TestObjectsAreEqual/ObjectsAreEqual(0,_0.1) (0.00s)
    --- PASS: TestObjectsAreEqual/ObjectsAreEqual(0.1,_0) (0.00s)
    --- PASS: TestObjectsAreEqual/ObjectsAreEqual((func()_time.Time)(0x4c3380),_(func()_time.Time)(0x4c3380)) (0.00s)
    --- PASS: TestObjectsAreEqual/ObjectsAreEqual((func())(0x720c00),_(func())(0x720c20)) (0.00s)
    --- PASS: TestObjectsAreEqual/ObjectsAreEqual(0xa,_10) (0.00s)
=== RUN   TestImplements
--- PASS: TestImplements (0.00s)
=== RUN   TestIsType
--- PASS: TestIsType (0.00s)
=== RUN   TestEqual
=== RUN   TestEqual/Equal("Hello_World",_"Hello_World")
=== RUN   TestEqual/Equal(123,_123)
=== RUN   TestEqual/Equal(123.5,_123.5)
=== RUN   TestEqual/Equal([]byte{0x48,_0x65,_0x6c,_0x6c,_0x6f,_0x20,_0x57,_0x6f,_0x72,_0x6c,_0x64},_[]byte{0x48,_0x65,_0x6c,_0x6c,_0x6f,_0x20,_0x57,_0x6f,_0x72,_0x6c,_0x64})
=== RUN   TestEqual/Equal(<nil>,_<nil>)
=== RUN   TestEqual/Equal(123,_123)#01
=== RUN   TestEqual/Equal(0x7b,_0x7b)
=== RUN   TestEqual/Equal("1",_"1")
=== RUN   TestEqual/Equal(&struct_{}{},_&struct_{}{})
=== RUN   TestEqual/Equal(<nil>,_"something")
=== RUN   TestEqual/Equal("1",_"2")
=== RUN   TestEqual/Equal(10,_0xa)
--- PASS: TestEqual (0.00s)
    --- PASS: TestEqual/Equal("Hello_World",_"Hello_World") (0.00s)
    --- PASS: TestEqual/Equal(123,_123) (0.00s)
    --- PASS: TestEqual/Equal(123.5,_123.5) (0.00s)
    --- PASS: TestEqual/Equal([]byte{0x48,_0x65,_0x6c,_0x6c,_0x6f,_0x20,_0x57,_0x6f,_0x72,_0x6c,_0x64},_[]byte{0x48,_0x65,_0x6c,_0x6c,_0x6f,_0x20,_0x57,_0x6f,_0x72,_0x6c,_0x64}) (0.00s)
    --- PASS: TestEqual/Equal(<nil>,_<nil>) (0.00s)
    --- PASS: TestEqual/Equal(123,_123)#01 (0.00s)
    --- PASS: TestEqual/Equal(0x7b,_0x7b) (0.00s)
    --- PASS: TestEqual/Equal("1",_"1") (0.00s)
    --- PASS: TestEqual/Equal(&struct_{}{},_&struct_{}{}) (0.00s)
    --- PASS: TestEqual/Equal(<nil>,_"something") (0.00s)
    --- PASS: TestEqual/Equal("1",_"2") (0.00s)
    --- PASS: TestEqual/Equal(10,_0xa) (0.00s)
=== RUN   TestSame
--- PASS: TestSame (0.00s)
=== RUN   TestNotSame
--- PASS: TestNotSame (0.00s)
=== RUN   Test_samePointers
=== RUN   Test_samePointers/1_!=_2
=== RUN   Test_samePointers/1_!=_1_(not_same_ptr)
=== RUN   Test_samePointers/ptr(1)_==_ptr(1)
=== RUN   Test_samePointers/int(1)_!=_float32(1)
=== RUN   Test_samePointers/array_!=_slice
--- PASS: Test_samePointers (0.00s)
    --- PASS: Test_samePointers/1_!=_2 (0.00s)
    --- PASS: Test_samePointers/1_!=_1_(not_same_ptr) (0.00s)
    --- PASS: Test_samePointers/ptr(1)_==_ptr(1) (0.00s)
    --- PASS: Test_samePointers/int(1)_!=_float32(1) (0.00s)
    --- PASS: Test_samePointers/array_!=_slice (0.00s)
=== RUN   TestStringEqual
--- PASS: TestStringEqual (0.00s)
=== RUN   TestEqualFormatting
--- PASS: TestEqualFormatting (0.00s)
=== RUN   TestFormatUnequalValues
--- PASS: TestFormatUnequalValues (0.00s)
=== RUN   TestNotNil
--- PASS: TestNotNil (0.00s)
=== RUN   TestNil
--- PASS: TestNil (0.00s)
=== RUN   TestTrue
--- PASS: TestTrue (0.00s)
=== RUN   TestFalse
--- PASS: TestFalse (0.00s)
=== RUN   TestExactly
=== RUN   TestExactly/Exactly(1,_1)
=== RUN   TestExactly/Exactly(1,_2)
=== RUN   TestExactly/Exactly(1,_1)#01
=== RUN   TestExactly/Exactly(<nil>,_1)
=== RUN   TestExactly/Exactly(1,_<nil>)
--- PASS: TestExactly (0.00s)
    --- PASS: TestExactly/Exactly(1,_1) (0.00s)
    --- PASS: TestExactly/Exactly(1,_2) (0.00s)
    --- PASS: TestExactly/Exactly(1,_1)#01 (0.00s)
    --- PASS: TestExactly/Exactly(<nil>,_1) (0.00s)
    --- PASS: TestExactly/Exactly(1,_<nil>) (0.00s)
=== RUN   TestNotEqual
=== RUN   TestNotEqual/NotEqual("Hello_World",_"Hello_World!")
=== RUN   TestNotEqual/NotEqual(123,_1234)
=== RUN   TestNotEqual/NotEqual(123.5,_123.55)
=== RUN   TestNotEqual/NotEqual([]byte{0x48,_0x65,_0x6c,_0x6c,_0x6f,_0x20,_0x57,_0x6f,_0x72,_0x6c,_0x64},_[]byte{0x48,_0x65,_0x6c,_0x6c,_0x6f,_0x20,_0x57,_0x6f,_0x72,_0x6c,_0x64,_0x21})
=== RUN   TestNotEqual/NotEqual(<nil>,_&assert.AssertionTesterConformingObject{})
=== RUN   TestNotEqual/NotEqual(<nil>,_<nil>)
=== RUN   TestNotEqual/NotEqual("Hello_World",_"Hello_World")
=== RUN   TestNotEqual/NotEqual(123,_123)
=== RUN   TestNotEqual/NotEqual(123.5,_123.5)
=== RUN   TestNotEqual/NotEqual([]byte{0x48,_0x65,_0x6c,_0x6c,_0x6f,_0x20,_0x57,_0x6f,_0x72,_0x6c,_0x64},_[]byte{0x48,_0x65,_0x6c,_0x6c,_0x6f,_0x20,_0x57,_0x6f,_0x72,_0x6c,_0x64})
=== RUN   TestNotEqual/NotEqual(&assert.AssertionTesterConformingObject{},_&assert.AssertionTesterConformingObject{})
=== RUN   TestNotEqual/NotEqual(&struct_{}{},_&struct_{}{})
=== RUN   TestNotEqual/NotEqual((func()_int)(0x7210a0),_(func()_int)(0x7210c0))
=== RUN   TestNotEqual/NotEqual(10,_0xa)
--- PASS: TestNotEqual (0.00s)
    --- PASS: TestNotEqual/NotEqual("Hello_World",_"Hello_World!") (0.00s)
    --- PASS: TestNotEqual/NotEqual(123,_1234) (0.00s)
    --- PASS: TestNotEqual/NotEqual(123.5,_123.55) (0.00s)
    --- PASS: TestNotEqual/NotEqual([]byte{0x48,_0x65,_0x6c,_0x6c,_0x6f,_0x20,_0x57,_0x6f,_0x72,_0x6c,_0x64},_[]byte{0x48,_0x65,_0x6c,_0x6c,_0x6f,_0x20,_0x57,_0x6f,_0x72,_0x6c,_0x64,_0x21}) (0.00s)
    --- PASS: TestNotEqual/NotEqual(<nil>,_&assert.AssertionTesterConformingObject{}) (0.00s)
    --- PASS: TestNotEqual/NotEqual(<nil>,_<nil>) (0.00s)
    --- PASS: TestNotEqual/NotEqual("Hello_World",_"Hello_World") (0.00s)
    --- PASS: TestNotEqual/NotEqual(123,_123) (0.00s)
    --- PASS: TestNotEqual/NotEqual(123.5,_123.5) (0.00s)
    --- PASS: TestNotEqual/NotEqual([]byte{0x48,_0x65,_0x6c,_0x6c,_0x6f,_0x20,_0x57,_0x6f,_0x72,_0x6c,_0x64},_[]byte{0x48,_0x65,_0x6c,_0x6c,_0x6f,_0x20,_0x57,_0x6f,_0x72,_0x6c,_0x64}) (0.00s)
    --- PASS: TestNotEqual/NotEqual(&assert.AssertionTesterConformingObject{},_&assert.AssertionTesterConformingObject{}) (0.00s)
    --- PASS: TestNotEqual/NotEqual(&struct_{}{},_&struct_{}{}) (0.00s)
    --- PASS: TestNotEqual/NotEqual((func()_int)(0x7210a0),_(func()_int)(0x7210c0)) (0.00s)
    --- PASS: TestNotEqual/NotEqual(10,_0xa) (0.00s)
=== RUN   TestNotEqualValues
=== RUN   TestNotEqualValues/NotEqualValues("Hello_World",_"Hello_World!")
=== RUN   TestNotEqualValues/NotEqualValues(123,_1234)
=== RUN   TestNotEqualValues/NotEqualValues(123.5,_123.55)
=== RUN   TestNotEqualValues/NotEqualValues([]byte{0x48,_0x65,_0x6c,_0x6c,_0x6f,_0x20,_0x57,_0x6f,_0x72,_0x6c,_0x64},_[]byte{0x48,_0x65,_0x6c,_0x6c,_0x6f,_0x20,_0x57,_0x6f,_0x72,_0x6c,_0x64,_0x21})
=== RUN   TestNotEqualValues/NotEqualValues(<nil>,_&assert.AssertionTesterConformingObject{})
=== RUN   TestNotEqualValues/NotEqualValues(<nil>,_<nil>)
=== RUN   TestNotEqualValues/NotEqualValues("Hello_World",_"Hello_World")
=== RUN   TestNotEqualValues/NotEqualValues(123,_123)
=== RUN   TestNotEqualValues/NotEqualValues(123.5,_123.5)
=== RUN   TestNotEqualValues/NotEqualValues([]byte{0x48,_0x65,_0x6c,_0x6c,_0x6f,_0x20,_0x57,_0x6f,_0x72,_0x6c,_0x64},_[]byte{0x48,_0x65,_0x6c,_0x6c,_0x6f,_0x20,_0x57,_0x6f,_0x72,_0x6c,_0x64})
=== RUN   TestNotEqualValues/NotEqualValues(&assert.AssertionTesterConformingObject{},_&assert.AssertionTesterConformingObject{})
=== RUN   TestNotEqualValues/NotEqualValues(&struct_{}{},_&struct_{}{})
=== RUN   TestNotEqualValues/NotEqualValues((func()_int)(0x7210e0),_(func()_int)(0x721100))
=== RUN   TestNotEqualValues/NotEqualValues(10,_11)
=== RUN   TestNotEqualValues/NotEqualValues(10,_0xa)
=== RUN   TestNotEqualValues/NotEqualValues(struct_{}{},_struct_{}{})
--- PASS: TestNotEqualValues (0.00s)
    --- PASS: TestNotEqualValues/NotEqualValues("Hello_World",_"Hello_World!") (0.00s)
    --- PASS: TestNotEqualValues/NotEqualValues(123,_1234) (0.00s)
    --- PASS: TestNotEqualValues/NotEqualValues(123.5,_123.55) (0.00s)
    --- PASS: TestNotEqualValues/NotEqualValues([]byte{0x48,_0x65,_0x6c,_0x6c,_0x6f,_0x20,_0x57,_0x6f,_0x72,_0x6c,_0x64},_[]byte{0x48,_0x65,_0x6c,_0x6c,_0x6f,_0x20,_0x57,_0x6f,_0x72,_0x6c,_0x64,_0x21}) (0.00s)
    --- PASS: TestNotEqualValues/NotEqualValues(<nil>,_&assert.AssertionTesterConformingObject{}) (0.00s)
    --- PASS: TestNotEqualValues/NotEqualValues(<nil>,_<nil>) (0.00s)
    --- PASS: TestNotEqualValues/NotEqualValues("Hello_World",_"Hello_World") (0.00s)
    --- PASS: TestNotEqualValues/NotEqualValues(123,_123) (0.00s)
    --- PASS: TestNotEqualValues/NotEqualValues(123.5,_123.5) (0.00s)
    --- PASS: TestNotEqualValues/NotEqualValues([]byte{0x48,_0x65,_0x6c,_0x6c,_0x6f,_0x20,_0x57,_0x6f,_0x72,_0x6c,_0x64},_[]byte{0x48,_0x65,_0x6c,_0x6c,_0x6f,_0x20,_0x57,_0x6f,_0x72,_0x6c,_0x64}) (0.00s)
    --- PASS: TestNotEqualValues/NotEqualValues(&assert.AssertionTesterConformingObject{},_&assert.AssertionTesterConformingObject{}) (0.00s)
    --- PASS: TestNotEqualValues/NotEqualValues(&struct_{}{},_&struct_{}{}) (0.00s)
    --- PASS: TestNotEqualValues/NotEqualValues((func()_int)(0x7210e0),_(func()_int)(0x721100)) (0.00s)
    --- PASS: TestNotEqualValues/NotEqualValues(10,_11) (0.00s)
    --- PASS: TestNotEqualValues/NotEqualValues(10,_0xa) (0.00s)
    --- PASS: TestNotEqualValues/NotEqualValues(struct_{}{},_struct_{}{}) (0.00s)
=== RUN   TestContainsNotContains
=== RUN   TestContainsNotContains/Contains("Hello_World",_"Hello")
=== RUN   TestContainsNotContains/Contains("Hello_World",_"Salut")
=== RUN   TestContainsNotContains/Contains([]string{"Foo",_"Bar"},_"Bar")
=== RUN   TestContainsNotContains/Contains([]string{"Foo",_"Bar"},_"Salut")
=== RUN   TestContainsNotContains/Contains([]*assert.A{(*assert.A)(0xc000516540),_(*assert.A)(0xc000516560),_(*assert.A)(0xc000516580),_(*assert.A)(0xc0005165a0)},_&assert.A{Name:"g",_Value:"h"})
=== RUN   TestContainsNotContains/Contains([]*assert.A{(*assert.A)(0xc000516540),_(*assert.A)(0xc000516560),_(*assert.A)(0xc000516580),_(*assert.A)(0xc0005165a0)},_&assert.A{Name:"g",_Value:"e"})
=== RUN   TestContainsNotContains/Contains(map[interface_{}]interface_{}{"Foo":"Bar"},_"Foo")
=== RUN   TestContainsNotContains/Contains(map[interface_{}]interface_{}{"Foo":"Bar"},_"Bar")
=== RUN   TestContainsNotContains/Contains(map[interface_{}]interface_{}(nil),_"Bar")
=== RUN   TestContainsNotContains/NotContains("Hello_World",_"Hello")
=== RUN   TestContainsNotContains/NotContains("Hello_World",_"Salut")
=== RUN   TestContainsNotContains/NotContains([]string{"Foo",_"Bar"},_"Bar")
=== RUN   TestContainsNotContains/NotContains([]string{"Foo",_"Bar"},_"Salut")
=== RUN   TestContainsNotContains/NotContains([]*assert.A{(*assert.A)(0xc000516540),_(*assert.A)(0xc000516560),_(*assert.A)(0xc000516580),_(*assert.A)(0xc0005165a0)},_&assert.A{Name:"g",_Value:"h"})
=== RUN   TestContainsNotContains/NotContains([]*assert.A{(*assert.A)(0xc000516540),_(*assert.A)(0xc000516560),_(*assert.A)(0xc000516580),_(*assert.A)(0xc0005165a0)},_&assert.A{Name:"g",_Value:"e"})
=== RUN   TestContainsNotContains/NotContains(map[interface_{}]interface_{}{"Foo":"Bar"},_"Foo")
=== RUN   TestContainsNotContains/NotContains(map[interface_{}]interface_{}{"Foo":"Bar"},_"Bar")
=== RUN   TestContainsNotContains/NotContains(map[interface_{}]interface_{}(nil),_"Bar")
--- PASS: TestContainsNotContains (0.00s)
    --- PASS: TestContainsNotContains/Contains("Hello_World",_"Hello") (0.00s)
    --- PASS: TestContainsNotContains/Contains("Hello_World",_"Salut") (0.00s)
    --- PASS: TestContainsNotContains/Contains([]string{"Foo",_"Bar"},_"Bar") (0.00s)
    --- PASS: TestContainsNotContains/Contains([]string{"Foo",_"Bar"},_"Salut") (0.00s)
    --- PASS: TestContainsNotContains/Contains([]*assert.A{(*assert.A)(0xc000516540),_(*assert.A)(0xc000516560),_(*assert.A)(0xc000516580),_(*assert.A)(0xc0005165a0)},_&assert.A{Name:"g",_Value:"h"}) (0.00s)
    --- PASS: TestContainsNotContains/Contains([]*assert.A{(*assert.A)(0xc000516540),_(*assert.A)(0xc000516560),_(*assert.A)(0xc000516580),_(*assert.A)(0xc0005165a0)},_&assert.A{Name:"g",_Value:"e"}) (0.00s)
    --- PASS: TestContainsNotContains/Contains(map[interface_{}]interface_{}{"Foo":"Bar"},_"Foo") (0.00s)
    --- PASS: TestContainsNotContains/Contains(map[interface_{}]interface_{}{"Foo":"Bar"},_"Bar") (0.00s)
    --- PASS: TestContainsNotContains/Contains(map[interface_{}]interface_{}(nil),_"Bar") (0.00s)
    --- PASS: TestContainsNotContains/NotContains("Hello_World",_"Hello") (0.00s)
    --- PASS: TestContainsNotContains/NotContains("Hello_World",_"Salut") (0.00s)
    --- PASS: TestContainsNotContains/NotContains([]string{"Foo",_"Bar"},_"Bar") (0.00s)
    --- PASS: TestContainsNotContains/NotContains([]string{"Foo",_"Bar"},_"Salut") (0.00s)
    --- PASS: TestContainsNotContains/NotContains([]*assert.A{(*assert.A)(0xc000516540),_(*assert.A)(0xc000516560),_(*assert.A)(0xc000516580),_(*assert.A)(0xc0005165a0)},_&assert.A{Name:"g",_Value:"h"}) (0.00s)
    --- PASS: TestContainsNotContains/NotContains([]*assert.A{(*assert.A)(0xc000516540),_(*assert.A)(0xc000516560),_(*assert.A)(0xc000516580),_(*assert.A)(0xc0005165a0)},_&assert.A{Name:"g",_Value:"e"}) (0.00s)
    --- PASS: TestContainsNotContains/NotContains(map[interface_{}]interface_{}{"Foo":"Bar"},_"Foo") (0.00s)
    --- PASS: TestContainsNotContains/NotContains(map[interface_{}]interface_{}{"Foo":"Bar"},_"Bar") (0.00s)
    --- PASS: TestContainsNotContains/NotContains(map[interface_{}]interface_{}(nil),_"Bar") (0.00s)
=== RUN   TestContainsFailMessage
--- PASS: TestContainsFailMessage (0.00s)
=== RUN   TestContainsNotContainsOnNilValue
--- PASS: TestContainsNotContainsOnNilValue (0.00s)
=== RUN   TestSubsetNotSubset
=== RUN   TestSubsetNotSubset/SubSet:_given_subset_is_nil
=== RUN   TestSubsetNotSubset/SubSet:_any_set_contains_the_nil_set
=== RUN   TestSubsetNotSubset/SubSet:_[1,_2,_3]_contains_[1,_2]
=== RUN   TestSubsetNotSubset/SubSet:_[1,_2,_3]_contains_[1,_2,_3
=== RUN   TestSubsetNotSubset/SubSet:_["hello",_"world"]_contains_["hello"]
=== RUN   TestSubsetNotSubset/SubSet:_{_"a":_"x",_"b":_"y",_"c":_"z"}_contains_{_"a":_"x",_"b":_"y"}
=== RUN   TestSubsetNotSubset/SubSet:_["hello",_"world"]_does_not_contain_["hello",_"testify"]
=== RUN   TestSubsetNotSubset/SubSet:_[1,_2,_3]_does_not_contain_[4,_5
=== RUN   TestSubsetNotSubset/SubSet:_[1,_2,_3]_does_not_contain_[1,_5]
=== RUN   TestSubsetNotSubset/SubSet:_{_"a":_"x",_"b":_"y",_"c":_"z"}_does_not_contain_{_"a":_"x",_"b":_"z"}
=== RUN   TestSubsetNotSubset/NotSubSet:_given_subset_is_nil
=== RUN   TestSubsetNotSubset/NotSubSet:_any_set_contains_the_nil_set
=== RUN   TestSubsetNotSubset/NotSubSet:_[1,_2,_3]_contains_[1,_2]
=== RUN   TestSubsetNotSubset/NotSubSet:_[1,_2,_3]_contains_[1,_2,_3
=== RUN   TestSubsetNotSubset/NotSubSet:_["hello",_"world"]_contains_["hello"]
=== RUN   TestSubsetNotSubset/NotSubSet:_{_"a":_"x",_"b":_"y",_"c":_"z"}_contains_{_"a":_"x",_"b":_"y"}
=== RUN   TestSubsetNotSubset/NotSubSet:_["hello",_"world"]_does_not_contain_["hello",_"testify"]
=== RUN   TestSubsetNotSubset/NotSubSet:_[1,_2,_3]_does_not_contain_[4,_5
=== RUN   TestSubsetNotSubset/NotSubSet:_[1,_2,_3]_does_not_contain_[1,_5]
=== RUN   TestSubsetNotSubset/NotSubSet:_{_"a":_"x",_"b":_"y",_"c":_"z"}_does_not_contain_{_"a":_"x",_"b":_"z"}
--- PASS: TestSubsetNotSubset (0.00s)
    --- PASS: TestSubsetNotSubset/SubSet:_given_subset_is_nil (0.00s)
    --- PASS: TestSubsetNotSubset/SubSet:_any_set_contains_the_nil_set (0.00s)
    --- PASS: TestSubsetNotSubset/SubSet:_[1,_2,_3]_contains_[1,_2] (0.00s)
    --- PASS: TestSubsetNotSubset/SubSet:_[1,_2,_3]_contains_[1,_2,_3 (0.00s)
    --- PASS: TestSubsetNotSubset/SubSet:_["hello",_"world"]_contains_["hello"] (0.00s)
    --- PASS: TestSubsetNotSubset/SubSet:_{_"a":_"x",_"b":_"y",_"c":_"z"}_contains_{_"a":_"x",_"b":_"y"} (0.00s)
    --- PASS: TestSubsetNotSubset/SubSet:_["hello",_"world"]_does_not_contain_["hello",_"testify"] (0.00s)
    --- PASS: TestSubsetNotSubset/SubSet:_[1,_2,_3]_does_not_contain_[4,_5 (0.00s)
    --- PASS: TestSubsetNotSubset/SubSet:_[1,_2,_3]_does_not_contain_[1,_5] (0.00s)
    --- PASS: TestSubsetNotSubset/SubSet:_{_"a":_"x",_"b":_"y",_"c":_"z"}_does_not_contain_{_"a":_"x",_"b":_"z"} (0.00s)
    --- PASS: TestSubsetNotSubset/NotSubSet:_given_subset_is_nil (0.00s)
    --- PASS: TestSubsetNotSubset/NotSubSet:_any_set_contains_the_nil_set (0.00s)
    --- PASS: TestSubsetNotSubset/NotSubSet:_[1,_2,_3]_contains_[1,_2] (0.00s)
    --- PASS: TestSubsetNotSubset/NotSubSet:_[1,_2,_3]_contains_[1,_2,_3 (0.00s)
    --- PASS: TestSubsetNotSubset/NotSubSet:_["hello",_"world"]_contains_["hello"] (0.00s)
    --- PASS: TestSubsetNotSubset/NotSubSet:_{_"a":_"x",_"b":_"y",_"c":_"z"}_contains_{_"a":_"x",_"b":_"y"} (0.00s)
    --- PASS: TestSubsetNotSubset/NotSubSet:_["hello",_"world"]_does_not_contain_["hello",_"testify"] (0.00s)
    --- PASS: TestSubsetNotSubset/NotSubSet:_[1,_2,_3]_does_not_contain_[4,_5 (0.00s)
    --- PASS: TestSubsetNotSubset/NotSubSet:_[1,_2,_3]_does_not_contain_[1,_5] (0.00s)
    --- PASS: TestSubsetNotSubset/NotSubSet:_{_"a":_"x",_"b":_"y",_"c":_"z"}_does_not_contain_{_"a":_"x",_"b":_"z"} (0.00s)
=== RUN   TestNotSubsetNil
--- PASS: TestNotSubsetNil (0.00s)
=== RUN   Test_containsElement
--- PASS: Test_containsElement (0.00s)
=== RUN   TestElementsMatch
=== RUN   TestElementsMatch/ElementsMatch(<nil>,_<nil>)
=== RUN   TestElementsMatch/ElementsMatch(<nil>,_<nil>)#01
=== RUN   TestElementsMatch/ElementsMatch([]int{},_[]int{})
=== RUN   TestElementsMatch/ElementsMatch([]int{1},_[]int{1})
=== RUN   TestElementsMatch/ElementsMatch([]int{1,_1},_[]int{1,_1})
=== RUN   TestElementsMatch/ElementsMatch([]int{1,_2},_[]int{1,_2})
=== RUN   TestElementsMatch/ElementsMatch([]int{1,_2},_[]int{2,_1})
=== RUN   TestElementsMatch/ElementsMatch([2]int{1,_2},_[2]int{2,_1})
=== RUN   TestElementsMatch/ElementsMatch([]string{"hello",_"world"},_[]string{"world",_"hello"})
=== RUN   TestElementsMatch/ElementsMatch([]string{"hello",_"hello"},_[]string{"hello",_"hello"})
=== RUN   TestElementsMatch/ElementsMatch([]string{"hello",_"hello",_"world"},_[]string{"hello",_"world",_"hello"})
=== RUN   TestElementsMatch/ElementsMatch([3]string{"hello",_"hello",_"world"},_[3]string{"hello",_"world",_"hello"})
=== RUN   TestElementsMatch/ElementsMatch([]int{},_<nil>)
=== RUN   TestElementsMatch/ElementsMatch([]int{1},_[]int{1,_1})
=== RUN   TestElementsMatch/ElementsMatch([]int{1,_2},_[]int{2,_2})
=== RUN   TestElementsMatch/ElementsMatch([]string{"hello",_"hello"},_[]string{"hello"})
--- PASS: TestElementsMatch (0.00s)
    --- PASS: TestElementsMatch/ElementsMatch(<nil>,_<nil>) (0.00s)
    --- PASS: TestElementsMatch/ElementsMatch(<nil>,_<nil>)#01 (0.00s)
    --- PASS: TestElementsMatch/ElementsMatch([]int{},_[]int{}) (0.00s)
    --- PASS: TestElementsMatch/ElementsMatch([]int{1},_[]int{1}) (0.00s)
    --- PASS: TestElementsMatch/ElementsMatch([]int{1,_1},_[]int{1,_1}) (0.00s)
    --- PASS: TestElementsMatch/ElementsMatch([]int{1,_2},_[]int{1,_2}) (0.00s)
    --- PASS: TestElementsMatch/ElementsMatch([]int{1,_2},_[]int{2,_1}) (0.00s)
    --- PASS: TestElementsMatch/ElementsMatch([2]int{1,_2},_[2]int{2,_1}) (0.00s)
    --- PASS: TestElementsMatch/ElementsMatch([]string{"hello",_"world"},_[]string{"world",_"hello"}) (0.00s)
    --- PASS: TestElementsMatch/ElementsMatch([]string{"hello",_"hello"},_[]string{"hello",_"hello"}) (0.00s)
    --- PASS: TestElementsMatch/ElementsMatch([]string{"hello",_"hello",_"world"},_[]string{"hello",_"world",_"hello"}) (0.00s)
    --- PASS: TestElementsMatch/ElementsMatch([3]string{"hello",_"hello",_"world"},_[3]string{"hello",_"world",_"hello"}) (0.00s)
    --- PASS: TestElementsMatch/ElementsMatch([]int{},_<nil>) (0.00s)
    --- PASS: TestElementsMatch/ElementsMatch([]int{1},_[]int{1,_1}) (0.00s)
    --- PASS: TestElementsMatch/ElementsMatch([]int{1,_2},_[]int{2,_2}) (0.00s)
    --- PASS: TestElementsMatch/ElementsMatch([]string{"hello",_"hello"},_[]string{"hello"}) (0.00s)
=== RUN   TestDiffLists
=== RUN   TestDiffLists/equal_empty
=== RUN   TestDiffLists/equal_same_order
=== RUN   TestDiffLists/equal_different_order
=== RUN   TestDiffLists/extra_A
=== RUN   TestDiffLists/extra_A_twice
=== RUN   TestDiffLists/extra_B
=== RUN   TestDiffLists/extra_B_twice
=== RUN   TestDiffLists/integers_1
=== RUN   TestDiffLists/integers_2
--- PASS: TestDiffLists (0.00s)
    --- PASS: TestDiffLists/equal_empty (0.00s)
    --- PASS: TestDiffLists/equal_same_order (0.00s)
    --- PASS: TestDiffLists/equal_different_order (0.00s)
    --- PASS: TestDiffLists/extra_A (0.00s)
    --- PASS: TestDiffLists/extra_A_twice (0.00s)
    --- PASS: TestDiffLists/extra_B (0.00s)
    --- PASS: TestDiffLists/extra_B_twice (0.00s)
    --- PASS: TestDiffLists/integers_1 (0.00s)
    --- PASS: TestDiffLists/integers_2 (0.00s)
=== RUN   TestCondition
--- PASS: TestCondition (0.00s)
=== RUN   TestDidPanic
--- PASS: TestDidPanic (0.00s)
=== RUN   TestPanics
--- PASS: TestPanics (0.00s)
=== RUN   TestPanicsWithValue
--- PASS: TestPanicsWithValue (0.00s)
=== RUN   TestPanicsWithError
--- PASS: TestPanicsWithError (0.00s)
=== RUN   TestNotPanics
--- PASS: TestNotPanics (0.00s)
=== RUN   TestNoError
--- PASS: TestNoError (0.00s)
=== RUN   TestError
--- PASS: TestError (0.00s)
=== RUN   TestEqualError
--- PASS: TestEqualError (0.00s)
=== RUN   TestErrorContains
--- PASS: TestErrorContains (0.00s)
=== RUN   Test_isEmpty
--- PASS: Test_isEmpty (0.00s)
=== RUN   TestEmpty
--- PASS: TestEmpty (0.00s)
=== RUN   TestNotEmpty
--- PASS: TestNotEmpty (0.00s)
=== RUN   Test_getLen
--- PASS: Test_getLen (0.00s)
=== RUN   TestLen
--- PASS: TestLen (0.00s)
=== RUN   TestWithinDuration
--- PASS: TestWithinDuration (0.00s)
=== RUN   TestWithinRange
--- PASS: TestWithinRange (0.00s)
=== RUN   TestInDelta
--- PASS: TestInDelta (0.00s)
=== RUN   TestInDeltaSlice
--- PASS: TestInDeltaSlice (0.00s)
=== RUN   TestInDeltaMapValues
--- PASS: TestInDeltaMapValues (0.00s)
=== RUN   TestInEpsilon
--- PASS: TestInEpsilon (0.00s)
=== RUN   TestInEpsilonSlice
--- PASS: TestInEpsilonSlice (0.00s)
=== RUN   TestRegexp
--- PASS: TestRegexp (0.00s)
=== RUN   TestCallerInfoWithAutogeneratedFunctions
--- PASS: TestCallerInfoWithAutogeneratedFunctions (0.00s)
=== RUN   TestZero
--- PASS: TestZero (0.00s)
=== RUN   TestNotZero
--- PASS: TestNotZero (0.00s)
=== RUN   TestFileExists
--- PASS: TestFileExists (0.00s)
=== RUN   TestNoFileExists
--- PASS: TestNoFileExists (0.00s)
=== RUN   TestDirExists
--- PASS: TestDirExists (0.00s)
=== RUN   TestNoDirExists
--- PASS: TestNoDirExists (0.00s)
=== RUN   TestJSONEq_EqualSONString
--- PASS: TestJSONEq_EqualSONString (0.00s)
=== RUN   TestJSONEq_EquivalentButNotEqual
--- PASS: TestJSONEq_EquivalentButNotEqual (0.00s)
=== RUN   TestJSONEq_HashOfArraysAndHashes
--- PASS: TestJSONEq_HashOfArraysAndHashes (0.00s)
=== RUN   TestJSONEq_Array
--- PASS: TestJSONEq_Array (0.00s)
=== RUN   TestJSONEq_HashAndArrayNotEquivalent
--- PASS: TestJSONEq_HashAndArrayNotEquivalent (0.00s)
=== RUN   TestJSONEq_HashesNotEquivalent
--- PASS: TestJSONEq_HashesNotEquivalent (0.00s)
=== RUN   TestJSONEq_ActualIsNotJSON
--- PASS: TestJSONEq_ActualIsNotJSON (0.00s)
=== RUN   TestJSONEq_ExpectedIsNotJSON
--- PASS: TestJSONEq_ExpectedIsNotJSON (0.00s)
=== RUN   TestJSONEq_ExpectedAndActualNotJSON
--- PASS: TestJSONEq_ExpectedAndActualNotJSON (0.00s)
=== RUN   TestJSONEq_ArraysOfDifferentOrder
--- PASS: TestJSONEq_ArraysOfDifferentOrder (0.00s)
=== RUN   TestYAMLEq_EqualYAMLString
--- PASS: TestYAMLEq_EqualYAMLString (0.00s)
=== RUN   TestYAMLEq_EquivalentButNotEqual
--- PASS: TestYAMLEq_EquivalentButNotEqual (0.00s)
=== RUN   TestYAMLEq_HashOfArraysAndHashes
--- PASS: TestYAMLEq_HashOfArraysAndHashes (0.00s)
=== RUN   TestYAMLEq_Array
--- PASS: TestYAMLEq_Array (0.00s)
=== RUN   TestYAMLEq_HashAndArrayNotEquivalent
--- PASS: TestYAMLEq_HashAndArrayNotEquivalent (0.00s)
=== RUN   TestYAMLEq_HashesNotEquivalent
--- PASS: TestYAMLEq_HashesNotEquivalent (0.00s)
=== RUN   TestYAMLEq_ActualIsSimpleString
--- PASS: TestYAMLEq_ActualIsSimpleString (0.00s)
=== RUN   TestYAMLEq_ExpectedIsSimpleString
--- PASS: TestYAMLEq_ExpectedIsSimpleString (0.00s)
=== RUN   TestYAMLEq_ExpectedAndActualSimpleString
--- PASS: TestYAMLEq_ExpectedAndActualSimpleString (0.00s)
=== RUN   TestYAMLEq_ArraysOfDifferentOrder
--- PASS: TestYAMLEq_ArraysOfDifferentOrder (0.00s)
=== RUN   TestDiff
--- PASS: TestDiff (0.00s)
=== RUN   TestTimeEqualityErrorFormatting
--- PASS: TestTimeEqualityErrorFormatting (0.00s)
=== RUN   TestDiffEmptyCases
--- PASS: TestDiffEmptyCases (0.00s)
=== RUN   TestDiffRace
=== PAUSE TestDiffRace
=== RUN   TestFailNowWithPlainTestingT
--- PASS: TestFailNowWithPlainTestingT (0.00s)
=== RUN   TestFailNowWithFullTestingT
--- PASS: TestFailNowWithFullTestingT (0.00s)
=== RUN   TestBytesEqual
--- PASS: TestBytesEqual (0.00s)
=== RUN   TestComparisonAssertionFunc
=== RUN   TestComparisonAssertionFunc/implements
=== RUN   TestComparisonAssertionFunc/isType
=== RUN   TestComparisonAssertionFunc/equal
=== RUN   TestComparisonAssertionFunc/equalValues
=== RUN   TestComparisonAssertionFunc/notEqualValues
=== RUN   TestComparisonAssertionFunc/exactly
=== RUN   TestComparisonAssertionFunc/notEqual
=== RUN   TestComparisonAssertionFunc/notContains
=== RUN   TestComparisonAssertionFunc/subset
=== RUN   TestComparisonAssertionFunc/notSubset
=== RUN   TestComparisonAssertionFunc/elementsMatch
=== RUN   TestComparisonAssertionFunc/regexp
=== RUN   TestComparisonAssertionFunc/notRegexp
--- PASS: TestComparisonAssertionFunc (0.00s)
    --- PASS: TestComparisonAssertionFunc/implements (0.00s)
    --- PASS: TestComparisonAssertionFunc/isType (0.00s)
    --- PASS: TestComparisonAssertionFunc/equal (0.00s)
    --- PASS: TestComparisonAssertionFunc/equalValues (0.00s)
    --- PASS: TestComparisonAssertionFunc/notEqualValues (0.00s)
    --- PASS: TestComparisonAssertionFunc/exactly (0.00s)
    --- PASS: TestComparisonAssertionFunc/notEqual (0.00s)
    --- PASS: TestComparisonAssertionFunc/notContains (0.00s)
    --- PASS: TestComparisonAssertionFunc/subset (0.00s)
    --- PASS: TestComparisonAssertionFunc/notSubset (0.00s)
    --- PASS: TestComparisonAssertionFunc/elementsMatch (0.00s)
    --- PASS: TestComparisonAssertionFunc/regexp (0.00s)
    --- PASS: TestComparisonAssertionFunc/notRegexp (0.00s)
=== RUN   TestValueAssertionFunc
=== RUN   TestValueAssertionFunc/notNil
=== RUN   TestValueAssertionFunc/nil
=== RUN   TestValueAssertionFunc/empty
=== RUN   TestValueAssertionFunc/notEmpty
=== RUN   TestValueAssertionFunc/zero
=== RUN   TestValueAssertionFunc/notZero
--- PASS: TestValueAssertionFunc (0.00s)
    --- PASS: TestValueAssertionFunc/notNil (0.00s)
    --- PASS: TestValueAssertionFunc/nil (0.00s)
    --- PASS: TestValueAssertionFunc/empty (0.00s)
    --- PASS: TestValueAssertionFunc/notEmpty (0.00s)
    --- PASS: TestValueAssertionFunc/zero (0.00s)
    --- PASS: TestValueAssertionFunc/notZero (0.00s)
=== RUN   TestBoolAssertionFunc
=== RUN   TestBoolAssertionFunc/true
=== RUN   TestBoolAssertionFunc/false
--- PASS: TestBoolAssertionFunc (0.00s)
    --- PASS: TestBoolAssertionFunc/true (0.00s)
    --- PASS: TestBoolAssertionFunc/false (0.00s)
=== RUN   TestErrorAssertionFunc
=== RUN   TestErrorAssertionFunc/noError
=== RUN   TestErrorAssertionFunc/error
--- PASS: TestErrorAssertionFunc (0.00s)
    --- PASS: TestErrorAssertionFunc/noError (0.00s)
    --- PASS: TestErrorAssertionFunc/error (0.00s)
=== RUN   TestEventuallyFalse
--- PASS: TestEventuallyFalse (0.10s)
=== RUN   TestEventuallyTrue
--- PASS: TestEventuallyTrue (0.06s)
=== RUN   TestNeverFalse
--- PASS: TestNeverFalse (0.10s)
=== RUN   TestNeverTrue
--- PASS: TestNeverTrue (0.06s)
=== RUN   TestEventuallyIssue805
--- PASS: TestEventuallyIssue805 (0.00s)
=== RUN   Test_validateEqualArgs
--- PASS: Test_validateEqualArgs (0.00s)
=== RUN   Test_truncatingFormat
--- PASS: Test_truncatingFormat (0.02s)
=== RUN   TestErrorIs
=== RUN   TestErrorIs/ErrorIs(&errors.errorString{s:"EOF"},&errors.errorString{s:"EOF"})
=== RUN   TestErrorIs/ErrorIs(&fmt.wrapError{msg:"wrap:_EOF",_err:(*errors.errorString)(0xc0001920f0)},&errors.errorString{s:"EOF"})
=== RUN   TestErrorIs/ErrorIs(&errors.errorString{s:"EOF"},&errors.errorString{s:"io:_read/write_on_closed_pipe"})
=== RUN   TestErrorIs/ErrorIs(<nil>,&errors.errorString{s:"EOF"})
=== RUN   TestErrorIs/ErrorIs(&errors.errorString{s:"EOF"},<nil>)
=== RUN   TestErrorIs/ErrorIs(<nil>,<nil>)
--- PASS: TestErrorIs (0.00s)
    --- PASS: TestErrorIs/ErrorIs(&errors.errorString{s:"EOF"},&errors.errorString{s:"EOF"}) (0.00s)
    --- PASS: TestErrorIs/ErrorIs(&fmt.wrapError{msg:"wrap:_EOF",_err:(*errors.errorString)(0xc0001920f0)},&errors.errorString{s:"EOF"}) (0.00s)
    --- PASS: TestErrorIs/ErrorIs(&errors.errorString{s:"EOF"},&errors.errorString{s:"io:_read/write_on_closed_pipe"}) (0.00s)
    --- PASS: TestErrorIs/ErrorIs(<nil>,&errors.errorString{s:"EOF"}) (0.00s)
    --- PASS: TestErrorIs/ErrorIs(&errors.errorString{s:"EOF"},<nil>) (0.00s)
    --- PASS: TestErrorIs/ErrorIs(<nil>,<nil>) (0.00s)
=== RUN   TestNotErrorIs
=== RUN   TestNotErrorIs/NotErrorIs(&errors.errorString{s:"EOF"},&errors.errorString{s:"EOF"})
=== RUN   TestNotErrorIs/NotErrorIs(&fmt.wrapError{msg:"wrap:_EOF",_err:(*errors.errorString)(0xc0001920f0)},&errors.errorString{s:"EOF"})
=== RUN   TestNotErrorIs/NotErrorIs(&errors.errorString{s:"EOF"},&errors.errorString{s:"io:_read/write_on_closed_pipe"})
=== RUN   TestNotErrorIs/NotErrorIs(<nil>,&errors.errorString{s:"EOF"})
=== RUN   TestNotErrorIs/NotErrorIs(&errors.errorString{s:"EOF"},<nil>)
=== RUN   TestNotErrorIs/NotErrorIs(<nil>,<nil>)
--- PASS: TestNotErrorIs (0.00s)
    --- PASS: TestNotErrorIs/NotErrorIs(&errors.errorString{s:"EOF"},&errors.errorString{s:"EOF"}) (0.00s)
    --- PASS: TestNotErrorIs/NotErrorIs(&fmt.wrapError{msg:"wrap:_EOF",_err:(*errors.errorString)(0xc0001920f0)},&errors.errorString{s:"EOF"}) (0.00s)
    --- PASS: TestNotErrorIs/NotErrorIs(&errors.errorString{s:"EOF"},&errors.errorString{s:"io:_read/write_on_closed_pipe"}) (0.00s)
    --- PASS: TestNotErrorIs/NotErrorIs(<nil>,&errors.errorString{s:"EOF"}) (0.00s)
    --- PASS: TestNotErrorIs/NotErrorIs(&errors.errorString{s:"EOF"},<nil>) (0.00s)
    --- PASS: TestNotErrorIs/NotErrorIs(<nil>,<nil>) (0.00s)
=== RUN   TestErrorAs
=== RUN   TestErrorAs/ErrorAs(&fmt.wrapError{msg:"wrap:_fail",_err:(*assert.customError)(0x9cf348)},(*assert.customError)(nil))
=== RUN   TestErrorAs/ErrorAs(&errors.errorString{s:"EOF"},(*assert.customError)(nil))
=== RUN   TestErrorAs/ErrorAs(<nil>,(*assert.customError)(nil))
--- PASS: TestErrorAs (0.00s)
    --- PASS: TestErrorAs/ErrorAs(&fmt.wrapError{msg:"wrap:_fail",_err:(*assert.customError)(0x9cf348)},(*assert.customError)(nil)) (0.00s)
    --- PASS: TestErrorAs/ErrorAs(&errors.errorString{s:"EOF"},(*assert.customError)(nil)) (0.00s)
    --- PASS: TestErrorAs/ErrorAs(<nil>,(*assert.customError)(nil)) (0.00s)
=== RUN   TestImplementsWrapper
--- PASS: TestImplementsWrapper (0.00s)
=== RUN   TestIsTypeWrapper
--- PASS: TestIsTypeWrapper (0.00s)
=== RUN   TestEqualWrapper
--- PASS: TestEqualWrapper (0.00s)
=== RUN   TestEqualValuesWrapper
--- PASS: TestEqualValuesWrapper (0.00s)
=== RUN   TestNotNilWrapper
--- PASS: TestNotNilWrapper (0.00s)
=== RUN   TestNilWrapper
--- PASS: TestNilWrapper (0.00s)
=== RUN   TestTrueWrapper
--- PASS: TestTrueWrapper (0.00s)
=== RUN   TestFalseWrapper
--- PASS: TestFalseWrapper (0.00s)
=== RUN   TestExactlyWrapper
--- PASS: TestExactlyWrapper (0.00s)
=== RUN   TestNotEqualWrapper
--- PASS: TestNotEqualWrapper (0.00s)
=== RUN   TestNotEqualValuesWrapper
--- PASS: TestNotEqualValuesWrapper (0.00s)
=== RUN   TestContainsWrapper
--- PASS: TestContainsWrapper (0.00s)
=== RUN   TestNotContainsWrapper
--- PASS: TestNotContainsWrapper (0.00s)
=== RUN   TestConditionWrapper
--- PASS: TestConditionWrapper (0.00s)
=== RUN   TestDidPanicWrapper
--- PASS: TestDidPanicWrapper (0.00s)
=== RUN   TestPanicsWrapper
--- PASS: TestPanicsWrapper (0.00s)
=== RUN   TestNotPanicsWrapper
--- PASS: TestNotPanicsWrapper (0.00s)
=== RUN   TestNoErrorWrapper
--- PASS: TestNoErrorWrapper (0.00s)
=== RUN   TestErrorWrapper
--- PASS: TestErrorWrapper (0.00s)
=== RUN   TestErrorContainsWrapper
--- PASS: TestErrorContainsWrapper (0.00s)
=== RUN   TestEqualErrorWrapper
--- PASS: TestEqualErrorWrapper (0.00s)
=== RUN   TestEmptyWrapper
--- PASS: TestEmptyWrapper (0.00s)
=== RUN   TestNotEmptyWrapper
--- PASS: TestNotEmptyWrapper (0.00s)
=== RUN   TestLenWrapper
--- PASS: TestLenWrapper (0.00s)
=== RUN   TestWithinDurationWrapper
--- PASS: TestWithinDurationWrapper (0.00s)
=== RUN   TestInDeltaWrapper
--- PASS: TestInDeltaWrapper (0.00s)
=== RUN   TestInEpsilonWrapper
--- PASS: TestInEpsilonWrapper (0.00s)
=== RUN   TestRegexpWrapper
--- PASS: TestRegexpWrapper (0.00s)
=== RUN   TestZeroWrapper
--- PASS: TestZeroWrapper (0.00s)
=== RUN   TestNotZeroWrapper
--- PASS: TestNotZeroWrapper (0.00s)
=== RUN   TestJSONEqWrapper_EqualSONString
--- PASS: TestJSONEqWrapper_EqualSONString (0.00s)
=== RUN   TestJSONEqWrapper_EquivalentButNotEqual
--- PASS: TestJSONEqWrapper_EquivalentButNotEqual (0.00s)
=== RUN   TestJSONEqWrapper_HashOfArraysAndHashes
--- PASS: TestJSONEqWrapper_HashOfArraysAndHashes (0.00s)
=== RUN   TestJSONEqWrapper_Array
--- PASS: TestJSONEqWrapper_Array (0.00s)
=== RUN   TestJSONEqWrapper_HashAndArrayNotEquivalent
--- PASS: TestJSONEqWrapper_HashAndArrayNotEquivalent (0.00s)
=== RUN   TestJSONEqWrapper_HashesNotEquivalent
--- PASS: TestJSONEqWrapper_HashesNotEquivalent (0.00s)
=== RUN   TestJSONEqWrapper_ActualIsNotJSON
--- PASS: TestJSONEqWrapper_ActualIsNotJSON (0.00s)
=== RUN   TestJSONEqWrapper_ExpectedIsNotJSON
--- PASS: TestJSONEqWrapper_ExpectedIsNotJSON (0.00s)
=== RUN   TestJSONEqWrapper_ExpectedAndActualNotJSON
--- PASS: TestJSONEqWrapper_ExpectedAndActualNotJSON (0.00s)
=== RUN   TestJSONEqWrapper_ArraysOfDifferentOrder
--- PASS: TestJSONEqWrapper_ArraysOfDifferentOrder (0.00s)
=== RUN   TestYAMLEqWrapper_EqualYAMLString
--- PASS: TestYAMLEqWrapper_EqualYAMLString (0.00s)
=== RUN   TestYAMLEqWrapper_EquivalentButNotEqual
--- PASS: TestYAMLEqWrapper_EquivalentButNotEqual (0.00s)
=== RUN   TestYAMLEqWrapper_HashOfArraysAndHashes
--- PASS: TestYAMLEqWrapper_HashOfArraysAndHashes (0.00s)
=== RUN   TestYAMLEqWrapper_Array
--- PASS: TestYAMLEqWrapper_Array (0.00s)
=== RUN   TestYAMLEqWrapper_HashAndArrayNotEquivalent
--- PASS: TestYAMLEqWrapper_HashAndArrayNotEquivalent (0.00s)
=== RUN   TestYAMLEqWrapper_HashesNotEquivalent
--- PASS: TestYAMLEqWrapper_HashesNotEquivalent (0.00s)
=== RUN   TestYAMLEqWrapper_ActualIsSimpleString
--- PASS: TestYAMLEqWrapper_ActualIsSimpleString (0.00s)
=== RUN   TestYAMLEqWrapper_ExpectedIsSimpleString
--- PASS: TestYAMLEqWrapper_ExpectedIsSimpleString (0.00s)
=== RUN   TestYAMLEqWrapper_ExpectedAndActualSimpleString
--- PASS: TestYAMLEqWrapper_ExpectedAndActualSimpleString (0.00s)
=== RUN   TestYAMLEqWrapper_ArraysOfDifferentOrder
--- PASS: TestYAMLEqWrapper_ArraysOfDifferentOrder (0.00s)
=== RUN   TestHTTPSuccess
--- PASS: TestHTTPSuccess (0.00s)
=== RUN   TestHTTPRedirect
--- PASS: TestHTTPRedirect (0.00s)
=== RUN   TestHTTPError
--- PASS: TestHTTPError (0.00s)
=== RUN   TestHTTPStatusCode
--- PASS: TestHTTPStatusCode (0.00s)
=== RUN   TestHTTPStatusesWrapper
--- PASS: TestHTTPStatusesWrapper (0.00s)
=== RUN   TestHTTPRequestWithNoParams
--- PASS: TestHTTPRequestWithNoParams (0.00s)
=== RUN   TestHTTPRequestWithParams
--- PASS: TestHTTPRequestWithParams (0.00s)
=== RUN   TestHttpBody
--- PASS: TestHttpBody (0.00s)
=== RUN   TestHttpBodyWrappers
--- PASS: TestHttpBodyWrappers (0.00s)
=== CONT  TestDiffRace
--- PASS: TestDiffRace (0.00s)
PASS
ok    github.com/stretchr/testify/assert  (cached)
?     github.com/stretchr/testify/http  [no test files]
=== RUN   Test_Mock_TestData
--- PASS: Test_Mock_TestData (0.00s)
=== RUN   Test_Mock_On
--- PASS: Test_Mock_On (0.00s)
=== RUN   Test_Mock_Chained_On
--- PASS: Test_Mock_Chained_On (0.00s)
=== RUN   Test_Mock_On_WithArgs
--- PASS: Test_Mock_On_WithArgs (0.00s)
=== RUN   Test_Mock_On_WithFuncArg
--- PASS: Test_Mock_On_WithFuncArg (0.00s)
=== RUN   Test_Mock_On_WithIntArgMatcher
--- PASS: Test_Mock_On_WithIntArgMatcher (0.00s)
=== RUN   Test_Mock_On_WithArgMatcherThatPanics
--- PASS: Test_Mock_On_WithArgMatcherThatPanics (0.00s)
=== RUN   TestMock_WithTest
--- PASS: TestMock_WithTest (0.00s)
=== RUN   Test_Mock_On_WithPtrArgMatcher
--- PASS: Test_Mock_On_WithPtrArgMatcher (0.00s)
=== RUN   Test_Mock_On_WithFuncArgMatcher
--- PASS: Test_Mock_On_WithFuncArgMatcher (0.00s)
=== RUN   Test_Mock_On_WithInterfaceArgMatcher
--- PASS: Test_Mock_On_WithInterfaceArgMatcher (0.00s)
=== RUN   Test_Mock_On_WithChannelArgMatcher
--- PASS: Test_Mock_On_WithChannelArgMatcher (0.00s)
=== RUN   Test_Mock_On_WithMapArgMatcher
--- PASS: Test_Mock_On_WithMapArgMatcher (0.00s)
=== RUN   Test_Mock_On_WithSliceArgMatcher
--- PASS: Test_Mock_On_WithSliceArgMatcher (0.00s)
=== RUN   Test_Mock_On_WithVariadicFunc
--- PASS: Test_Mock_On_WithVariadicFunc (0.00s)
=== RUN   Test_Mock_On_WithMixedVariadicFunc
--- PASS: Test_Mock_On_WithMixedVariadicFunc (0.00s)
=== RUN   Test_Mock_On_WithVariadicFuncWithInterface
--- PASS: Test_Mock_On_WithVariadicFuncWithInterface (0.00s)
=== RUN   Test_Mock_On_WithVariadicFuncWithEmptyInterfaceArray
--- PASS: Test_Mock_On_WithVariadicFuncWithEmptyInterfaceArray (0.00s)
=== RUN   Test_Mock_On_WithFuncPanics
--- PASS: Test_Mock_On_WithFuncPanics (0.00s)
=== RUN   Test_Mock_On_WithFuncTypeArg
--- PASS: Test_Mock_On_WithFuncTypeArg (0.00s)
=== RUN   Test_Mock_Unset
--- PASS: Test_Mock_Unset (0.00s)
=== RUN   Test_Mock_Chained_UnsetOnlyUnsetsLastCall
--- PASS: Test_Mock_Chained_UnsetOnlyUnsetsLastCall (0.00s)
=== RUN   Test_Mock_UnsetIfAlreadyUnsetFails
--- PASS: Test_Mock_UnsetIfAlreadyUnsetFails (0.00s)
=== RUN   Test_Mock_Return
--- PASS: Test_Mock_Return (0.00s)
=== RUN   Test_Mock_Panic
--- PASS: Test_Mock_Panic (0.00s)
=== RUN   Test_Mock_Return_WaitUntil
--- PASS: Test_Mock_Return_WaitUntil (0.00s)
=== RUN   Test_Mock_Return_After
--- PASS: Test_Mock_Return_After (0.00s)
=== RUN   Test_Mock_Return_Run
--- PASS: Test_Mock_Return_Run (0.00s)
=== RUN   Test_Mock_Return_Run_Out_Of_Order
--- PASS: Test_Mock_Return_Run_Out_Of_Order (0.00s)
=== RUN   Test_Mock_Return_Once
--- PASS: Test_Mock_Return_Once (0.00s)
=== RUN   Test_Mock_Return_Twice
--- PASS: Test_Mock_Return_Twice (0.00s)
=== RUN   Test_Mock_Return_Times
--- PASS: Test_Mock_Return_Times (0.00s)
=== RUN   Test_Mock_Return_Nothing
--- PASS: Test_Mock_Return_Nothing (0.00s)
=== RUN   Test_Mock_Return_NotBefore_In_Order
--- PASS: Test_Mock_Return_NotBefore_In_Order (0.00s)
=== RUN   Test_Mock_Return_NotBefore_Out_Of_Order
--- PASS: Test_Mock_Return_NotBefore_Out_Of_Order (0.00s)
=== RUN   Test_Mock_Return_NotBefore_Not_Enough_Times
--- PASS: Test_Mock_Return_NotBefore_Not_Enough_Times (0.00s)
=== RUN   Test_Mock_Return_NotBefore_Different_Mock_In_Order
--- PASS: Test_Mock_Return_NotBefore_Different_Mock_In_Order (0.00s)
=== RUN   Test_Mock_Return_NotBefore_Different_Mock_Out_Of_Order
--- PASS: Test_Mock_Return_NotBefore_Different_Mock_Out_Of_Order (0.00s)
=== RUN   Test_Mock_Return_NotBefore_In_Order_With_Non_Dependant
--- PASS: Test_Mock_Return_NotBefore_In_Order_With_Non_Dependant (0.00s)
=== RUN   Test_Mock_Return_NotBefore_Orphan_Call
--- PASS: Test_Mock_Return_NotBefore_Orphan_Call (0.00s)
=== RUN   Test_Mock_findExpectedCall
--- PASS: Test_Mock_findExpectedCall (0.00s)
=== RUN   Test_Mock_findExpectedCall_For_Unknown_Method
--- PASS: Test_Mock_findExpectedCall_For_Unknown_Method (0.00s)
=== RUN   Test_Mock_findExpectedCall_Respects_Repeatability
--- PASS: Test_Mock_findExpectedCall_Respects_Repeatability (0.00s)
=== RUN   Test_callString
--- PASS: Test_callString (0.00s)
=== RUN   Test_Mock_Called
--- PASS: Test_Mock_Called (0.00s)
=== RUN   Test_Mock_Called_blocks
--- PASS: Test_Mock_Called_blocks (0.00s)
=== RUN   Test_Mock_Called_For_Bounded_Repeatability
--- PASS: Test_Mock_Called_For_Bounded_Repeatability (0.00s)
=== RUN   Test_Mock_Called_For_SetTime_Expectation
--- PASS: Test_Mock_Called_For_SetTime_Expectation (0.00s)
=== RUN   Test_Mock_Called_Unexpected
--- PASS: Test_Mock_Called_Unexpected (0.00s)
=== RUN   Test_AssertExpectationsForObjects_Helper
    mock_test.go:1224: Deprecated mock.AssertExpectationsForObjects(myMock.Mock) use mock.AssertExpectationsForObjects(myMock)
    mock_test.go:1224: PASS:  Test_AssertExpectationsForObjects_Helper(int)
    mock_test.go:1224: Deprecated mock.AssertExpectationsForObjects(myMock.Mock) use mock.AssertExpectationsForObjects(myMock)
    mock_test.go:1224: PASS:  Test_AssertExpectationsForObjects_Helper(int)
    mock_test.go:1224: Deprecated mock.AssertExpectationsForObjects(myMock.Mock) use mock.AssertExpectationsForObjects(myMock)
    mock_test.go:1224: PASS:  Test_AssertExpectationsForObjects_Helper(int)
    mock_test.go:1224: Deprecated mock.AssertExpectationsForObjects(myMock.Mock) use mock.AssertExpectationsForObjects(myMock)
    mock_test.go:1225: PASS:  Test_AssertExpectationsForObjects_Helper(int)
    mock_test.go:1225: PASS:  Test_AssertExpectationsForObjects_Helper(int)
    mock_test.go:1225: PASS:  Test_AssertExpectationsForObjects_Helper(int)
--- PASS: Test_AssertExpectationsForObjects_Helper (0.00s)
=== RUN   Test_AssertExpectationsForObjects_Helper_Failed
--- PASS: Test_AssertExpectationsForObjects_Helper_Failed (0.00s)
=== RUN   Test_Mock_AssertExpectations
--- PASS: Test_Mock_AssertExpectations (0.00s)
=== RUN   Test_Mock_AssertExpectations_Placeholder_NoArgs
--- PASS: Test_Mock_AssertExpectations_Placeholder_NoArgs (0.00s)
=== RUN   Test_Mock_AssertExpectations_Placeholder
--- PASS: Test_Mock_AssertExpectations_Placeholder (0.00s)
=== RUN   Test_Mock_AssertExpectations_With_Pointers
--- PASS: Test_Mock_AssertExpectations_With_Pointers (0.00s)
=== RUN   Test_Mock_AssertExpectationsCustomType
--- PASS: Test_Mock_AssertExpectationsCustomType (0.00s)
=== RUN   Test_Mock_AssertExpectations_With_Repeatability
--- PASS: Test_Mock_AssertExpectations_With_Repeatability (0.00s)
=== RUN   Test_Mock_TwoCallsWithDifferentArguments
--- PASS: Test_Mock_TwoCallsWithDifferentArguments (0.00s)
=== RUN   Test_Mock_AssertNumberOfCalls
--- PASS: Test_Mock_AssertNumberOfCalls (0.00s)
=== RUN   Test_Mock_AssertCalled
--- PASS: Test_Mock_AssertCalled (0.00s)
=== RUN   Test_Mock_AssertCalled_WithAnythingOfTypeArgument
--- PASS: Test_Mock_AssertCalled_WithAnythingOfTypeArgument (0.00s)
=== RUN   Test_Mock_AssertCalled_WithArguments
--- PASS: Test_Mock_AssertCalled_WithArguments (0.00s)
=== RUN   Test_Mock_AssertCalled_WithArguments_With_Repeatability
--- PASS: Test_Mock_AssertCalled_WithArguments_With_Repeatability (0.00s)
=== RUN   Test_Mock_AssertNotCalled
--- PASS: Test_Mock_AssertNotCalled (0.00s)
=== RUN   Test_Mock_IsMethodCallable
--- PASS: Test_Mock_IsMethodCallable (0.00s)
=== RUN   TestIsArgsEqual
--- PASS: TestIsArgsEqual (0.00s)
=== RUN   Test_Mock_AssertOptional
--- PASS: Test_Mock_AssertOptional (0.00s)
=== RUN   Test_Arguments_Get
--- PASS: Test_Arguments_Get (0.00s)
=== RUN   Test_Arguments_Is
--- PASS: Test_Arguments_Is (0.00s)
=== RUN   Test_Arguments_Diff
--- PASS: Test_Arguments_Diff (0.00s)
=== RUN   Test_Arguments_Diff_DifferentNumberOfArgs
--- PASS: Test_Arguments_Diff_DifferentNumberOfArgs (0.00s)
=== RUN   Test_Arguments_Diff_WithAnythingArgument
--- PASS: Test_Arguments_Diff_WithAnythingArgument (0.00s)
=== RUN   Test_Arguments_Diff_WithAnythingArgument_InActualToo
--- PASS: Test_Arguments_Diff_WithAnythingArgument_InActualToo (0.00s)
=== RUN   Test_Arguments_Diff_WithAnythingOfTypeArgument
--- PASS: Test_Arguments_Diff_WithAnythingOfTypeArgument (0.00s)
=== RUN   Test_Arguments_Diff_WithAnythingOfTypeArgument_Failing
--- PASS: Test_Arguments_Diff_WithAnythingOfTypeArgument_Failing (0.00s)
=== RUN   Test_Arguments_Diff_WithIsTypeArgument
--- PASS: Test_Arguments_Diff_WithIsTypeArgument (0.00s)
=== RUN   Test_Arguments_Diff_WithIsTypeArgument_Failing
--- PASS: Test_Arguments_Diff_WithIsTypeArgument_Failing (0.00s)
=== RUN   Test_Arguments_Diff_WithArgMatcher
--- PASS: Test_Arguments_Diff_WithArgMatcher (0.00s)
=== RUN   Test_Arguments_Assert
--- PASS: Test_Arguments_Assert (0.00s)
=== RUN   Test_Arguments_String_Representation
--- PASS: Test_Arguments_String_Representation (0.00s)
=== RUN   Test_Arguments_String
--- PASS: Test_Arguments_String (0.00s)
=== RUN   Test_Arguments_Error
--- PASS: Test_Arguments_Error (0.00s)
=== RUN   Test_Arguments_Error_Nil
--- PASS: Test_Arguments_Error_Nil (0.00s)
=== RUN   Test_Arguments_Int
--- PASS: Test_Arguments_Int (0.00s)
=== RUN   Test_Arguments_Bool
--- PASS: Test_Arguments_Bool (0.00s)
=== RUN   Test_WaitUntil_Parallel
--- PASS: Test_WaitUntil_Parallel (0.00s)
=== RUN   Test_MockMethodCalled
    mock_test.go:1741: PASS:  foo(string)
--- PASS: Test_MockMethodCalled (0.00s)
=== RUN   Test_MockMethodCalled_Panic
    mock_test.go:1749: PASS:  foo(string)
--- PASS: Test_MockMethodCalled_Panic (0.00s)
=== RUN   Test_MockReturnAndCalledConcurrent
--- PASS: Test_MockReturnAndCalledConcurrent (0.06s)
=== RUN   TestLoggingAssertExpectations
    mock_test.go:1793: FAIL:  GetTime(int)
            at: [/path/testify/mock/mock_test.go:1805]
    mock_test.go:1793: Expectations didn't match for Mock: *mock.timer
--- PASS: TestLoggingAssertExpectations (0.00s)
=== RUN   TestAfterTotalWaitTimeWhileExecution
--- PASS: TestAfterTotalWaitTimeWhileExecution (0.01s)
=== RUN   TestArgumentMatcherToPrintMismatch
--- PASS: TestArgumentMatcherToPrintMismatch (0.00s)
=== RUN   TestArgumentMatcherToPrintMismatchWithReferenceType
--- PASS: TestArgumentMatcherToPrintMismatchWithReferenceType (0.00s)
=== RUN   TestClosestCallMismatchedArgumentInformationShowsTheClosest
--- PASS: TestClosestCallMismatchedArgumentInformationShowsTheClosest (0.00s)
=== RUN   TestClosestCallFavorsFirstMock
--- PASS: TestClosestCallFavorsFirstMock (0.00s)
=== RUN   TestClosestCallUsesRepeatabilityToFindClosest
--- PASS: TestClosestCallUsesRepeatabilityToFindClosest (0.00s)
=== RUN   TestClosestCallMismatchedArgumentValueInformation
--- PASS: TestClosestCallMismatchedArgumentValueInformation (0.00s)
=== RUN   Test_isBetterMatchThanReturnsFalseIfCandidateCallIsNil
--- PASS: Test_isBetterMatchThanReturnsFalseIfCandidateCallIsNil (0.00s)
=== RUN   Test_isBetterMatchThanReturnsTrueIfOtherCandidateCallIsNil
--- PASS: Test_isBetterMatchThanReturnsTrueIfOtherCandidateCallIsNil (0.00s)
=== RUN   Test_isBetterMatchThanReturnsFalseIfDiffCountIsGreaterThanOther
--- PASS: Test_isBetterMatchThanReturnsFalseIfDiffCountIsGreaterThanOther (0.00s)
=== RUN   Test_isBetterMatchThanReturnsTrueIfDiffCountIsLessThanOther
--- PASS: Test_isBetterMatchThanReturnsTrueIfDiffCountIsLessThanOther (0.00s)
=== RUN   Test_isBetterMatchThanReturnsTrueIfRepeatabilityIsGreaterThanOther
--- PASS: Test_isBetterMatchThanReturnsTrueIfRepeatabilityIsGreaterThanOther (0.00s)
=== RUN   Test_isBetterMatchThanReturnsFalseIfRepeatabilityIsLessThanOrEqualToOther
--- PASS: Test_isBetterMatchThanReturnsFalseIfRepeatabilityIsLessThanOrEqualToOther (0.00s)
=== RUN   TestConcurrentArgumentRead
    mock_test.go:1994: PASS:  Use(*mock.mockCaller)
    mock_test.go:1994: PASS:  Call()
--- PASS: TestConcurrentArgumentRead (0.00s)
PASS
ok    github.com/stretchr/testify/mock  (cached)
=== RUN   TestImplementsWrapper
--- PASS: TestImplementsWrapper (0.00s)
=== RUN   TestIsTypeWrapper
--- PASS: TestIsTypeWrapper (0.00s)
=== RUN   TestEqualWrapper
--- PASS: TestEqualWrapper (0.00s)
=== RUN   TestNotEqualWrapper
--- PASS: TestNotEqualWrapper (0.00s)
=== RUN   TestExactlyWrapper
--- PASS: TestExactlyWrapper (0.00s)
=== RUN   TestNotNilWrapper
--- PASS: TestNotNilWrapper (0.00s)
=== RUN   TestNilWrapper
--- PASS: TestNilWrapper (0.00s)
=== RUN   TestTrueWrapper
--- PASS: TestTrueWrapper (0.00s)
=== RUN   TestFalseWrapper
--- PASS: TestFalseWrapper (0.00s)
=== RUN   TestContainsWrapper
--- PASS: TestContainsWrapper (0.00s)
=== RUN   TestNotContainsWrapper
--- PASS: TestNotContainsWrapper (0.00s)
=== RUN   TestPanicsWrapper
--- PASS: TestPanicsWrapper (0.00s)
=== RUN   TestNotPanicsWrapper
--- PASS: TestNotPanicsWrapper (0.00s)
=== RUN   TestNoErrorWrapper
--- PASS: TestNoErrorWrapper (0.00s)
=== RUN   TestErrorWrapper
--- PASS: TestErrorWrapper (0.00s)
=== RUN   TestErrorContainsWrapper
--- PASS: TestErrorContainsWrapper (0.00s)
=== RUN   TestEqualErrorWrapper
--- PASS: TestEqualErrorWrapper (0.00s)
=== RUN   TestEmptyWrapper
--- PASS: TestEmptyWrapper (0.00s)
=== RUN   TestNotEmptyWrapper
--- PASS: TestNotEmptyWrapper (0.00s)
=== RUN   TestWithinDurationWrapper
--- PASS: TestWithinDurationWrapper (0.00s)
=== RUN   TestInDeltaWrapper
--- PASS: TestInDeltaWrapper (0.00s)
=== RUN   TestZeroWrapper
--- PASS: TestZeroWrapper (0.00s)
=== RUN   TestNotZeroWrapper
--- PASS: TestNotZeroWrapper (0.00s)
=== RUN   TestJSONEqWrapper_EqualSONString
--- PASS: TestJSONEqWrapper_EqualSONString (0.00s)
=== RUN   TestJSONEqWrapper_EquivalentButNotEqual
--- PASS: TestJSONEqWrapper_EquivalentButNotEqual (0.00s)
=== RUN   TestJSONEqWrapper_HashOfArraysAndHashes
--- PASS: TestJSONEqWrapper_HashOfArraysAndHashes (0.00s)
=== RUN   TestJSONEqWrapper_Array
--- PASS: TestJSONEqWrapper_Array (0.00s)
=== RUN   TestJSONEqWrapper_HashAndArrayNotEquivalent
--- PASS: TestJSONEqWrapper_HashAndArrayNotEquivalent (0.00s)
=== RUN   TestJSONEqWrapper_HashesNotEquivalent
--- PASS: TestJSONEqWrapper_HashesNotEquivalent (0.00s)
=== RUN   TestJSONEqWrapper_ActualIsNotJSON
--- PASS: TestJSONEqWrapper_ActualIsNotJSON (0.00s)
=== RUN   TestJSONEqWrapper_ExpectedIsNotJSON
--- PASS: TestJSONEqWrapper_ExpectedIsNotJSON (0.00s)
=== RUN   TestJSONEqWrapper_ExpectedAndActualNotJSON
--- PASS: TestJSONEqWrapper_ExpectedAndActualNotJSON (0.00s)
=== RUN   TestJSONEqWrapper_ArraysOfDifferentOrder
--- PASS: TestJSONEqWrapper_ArraysOfDifferentOrder (0.00s)
=== RUN   TestYAMLEqWrapper_EqualYAMLString
--- PASS: TestYAMLEqWrapper_EqualYAMLString (0.00s)
=== RUN   TestYAMLEqWrapper_EquivalentButNotEqual
--- PASS: TestYAMLEqWrapper_EquivalentButNotEqual (0.00s)
=== RUN   TestYAMLEqWrapper_HashOfArraysAndHashes
--- PASS: TestYAMLEqWrapper_HashOfArraysAndHashes (0.00s)
=== RUN   TestYAMLEqWrapper_Array
--- PASS: TestYAMLEqWrapper_Array (0.00s)
=== RUN   TestYAMLEqWrapper_HashAndArrayNotEquivalent
--- PASS: TestYAMLEqWrapper_HashAndArrayNotEquivalent (0.00s)
=== RUN   TestYAMLEqWrapper_HashesNotEquivalent
--- PASS: TestYAMLEqWrapper_HashesNotEquivalent (0.00s)
=== RUN   TestYAMLEqWrapper_ActualIsSimpleString
--- PASS: TestYAMLEqWrapper_ActualIsSimpleString (0.00s)
=== RUN   TestYAMLEqWrapper_ExpectedIsSimpleString
--- PASS: TestYAMLEqWrapper_ExpectedIsSimpleString (0.00s)
=== RUN   TestYAMLEqWrapper_ExpectedAndActualSimpleString
--- PASS: TestYAMLEqWrapper_ExpectedAndActualSimpleString (0.00s)
=== RUN   TestYAMLEqWrapper_ArraysOfDifferentOrder
--- PASS: TestYAMLEqWrapper_ArraysOfDifferentOrder (0.00s)
=== RUN   TestImplements
--- PASS: TestImplements (0.00s)
=== RUN   TestIsType
--- PASS: TestIsType (0.00s)
=== RUN   TestEqual
--- PASS: TestEqual (0.00s)
=== RUN   TestNotEqual
--- PASS: TestNotEqual (0.00s)
=== RUN   TestExactly
--- PASS: TestExactly (0.00s)
=== RUN   TestNotNil
--- PASS: TestNotNil (0.00s)
=== RUN   TestNil
--- PASS: TestNil (0.00s)
=== RUN   TestTrue
--- PASS: TestTrue (0.00s)
=== RUN   TestFalse
--- PASS: TestFalse (0.00s)
=== RUN   TestContains
--- PASS: TestContains (0.00s)
=== RUN   TestNotContains
--- PASS: TestNotContains (0.00s)
=== RUN   TestPanics
--- PASS: TestPanics (0.00s)
=== RUN   TestNotPanics
--- PASS: TestNotPanics (0.00s)
=== RUN   TestNoError
--- PASS: TestNoError (0.00s)
=== RUN   TestError
--- PASS: TestError (0.00s)
=== RUN   TestErrorContains
--- PASS: TestErrorContains (0.00s)
=== RUN   TestEqualError
--- PASS: TestEqualError (0.00s)
=== RUN   TestEmpty
--- PASS: TestEmpty (0.00s)
=== RUN   TestNotEmpty
--- PASS: TestNotEmpty (0.00s)
=== RUN   TestWithinDuration
--- PASS: TestWithinDuration (0.00s)
=== RUN   TestInDelta
--- PASS: TestInDelta (0.00s)
=== RUN   TestZero
--- PASS: TestZero (0.00s)
=== RUN   TestNotZero
--- PASS: TestNotZero (0.00s)
=== RUN   TestJSONEq_EqualSONString
--- PASS: TestJSONEq_EqualSONString (0.00s)
=== RUN   TestJSONEq_EquivalentButNotEqual
--- PASS: TestJSONEq_EquivalentButNotEqual (0.00s)
=== RUN   TestJSONEq_HashOfArraysAndHashes
--- PASS: TestJSONEq_HashOfArraysAndHashes (0.00s)
=== RUN   TestJSONEq_Array
--- PASS: TestJSONEq_Array (0.00s)
=== RUN   TestJSONEq_HashAndArrayNotEquivalent
--- PASS: TestJSONEq_HashAndArrayNotEquivalent (0.00s)
=== RUN   TestJSONEq_HashesNotEquivalent
--- PASS: TestJSONEq_HashesNotEquivalent (0.00s)
=== RUN   TestJSONEq_ActualIsNotJSON
--- PASS: TestJSONEq_ActualIsNotJSON (0.00s)
=== RUN   TestJSONEq_ExpectedIsNotJSON
--- PASS: TestJSONEq_ExpectedIsNotJSON (0.00s)
=== RUN   TestJSONEq_ExpectedAndActualNotJSON
--- PASS: TestJSONEq_ExpectedAndActualNotJSON (0.00s)
=== RUN   TestJSONEq_ArraysOfDifferentOrder
--- PASS: TestJSONEq_ArraysOfDifferentOrder (0.00s)
=== RUN   TestYAMLEq_EqualYAMLString
--- PASS: TestYAMLEq_EqualYAMLString (0.00s)
=== RUN   TestYAMLEq_EquivalentButNotEqual
--- PASS: TestYAMLEq_EquivalentButNotEqual (0.00s)
=== RUN   TestYAMLEq_HashOfArraysAndHashes
--- PASS: TestYAMLEq_HashOfArraysAndHashes (0.00s)
=== RUN   TestYAMLEq_Array
--- PASS: TestYAMLEq_Array (0.00s)
=== RUN   TestYAMLEq_HashAndArrayNotEquivalent
--- PASS: TestYAMLEq_HashAndArrayNotEquivalent (0.00s)
=== RUN   TestYAMLEq_HashesNotEquivalent
--- PASS: TestYAMLEq_HashesNotEquivalent (0.00s)
=== RUN   TestYAMLEq_ActualIsSimpleString
--- PASS: TestYAMLEq_ActualIsSimpleString (0.00s)
=== RUN   TestYAMLEq_ExpectedIsSimpleString
--- PASS: TestYAMLEq_ExpectedIsSimpleString (0.00s)
=== RUN   TestYAMLEq_ExpectedAndActualSimpleString
--- PASS: TestYAMLEq_ExpectedAndActualSimpleString (0.00s)
=== RUN   TestYAMLEq_ArraysOfDifferentOrder
--- PASS: TestYAMLEq_ArraysOfDifferentOrder (0.00s)
=== RUN   TestComparisonAssertionFunc
=== RUN   TestComparisonAssertionFunc/implements
=== RUN   TestComparisonAssertionFunc/isType
=== RUN   TestComparisonAssertionFunc/equal
=== RUN   TestComparisonAssertionFunc/equalValues
=== RUN   TestComparisonAssertionFunc/exactly
=== RUN   TestComparisonAssertionFunc/notEqual
=== RUN   TestComparisonAssertionFunc/NotEqualValues
=== RUN   TestComparisonAssertionFunc/notContains
=== RUN   TestComparisonAssertionFunc/subset
=== RUN   TestComparisonAssertionFunc/notSubset
=== RUN   TestComparisonAssertionFunc/elementsMatch
=== RUN   TestComparisonAssertionFunc/regexp
=== RUN   TestComparisonAssertionFunc/notRegexp
--- PASS: TestComparisonAssertionFunc (0.00s)
    --- PASS: TestComparisonAssertionFunc/implements (0.00s)
    --- PASS: TestComparisonAssertionFunc/isType (0.00s)
    --- PASS: TestComparisonAssertionFunc/equal (0.00s)
    --- PASS: TestComparisonAssertionFunc/equalValues (0.00s)
    --- PASS: TestComparisonAssertionFunc/exactly (0.00s)
    --- PASS: TestComparisonAssertionFunc/notEqual (0.00s)
    --- PASS: TestComparisonAssertionFunc/NotEqualValues (0.00s)
    --- PASS: TestComparisonAssertionFunc/notContains (0.00s)
    --- PASS: TestComparisonAssertionFunc/subset (0.00s)
    --- PASS: TestComparisonAssertionFunc/notSubset (0.00s)
    --- PASS: TestComparisonAssertionFunc/elementsMatch (0.00s)
    --- PASS: TestComparisonAssertionFunc/regexp (0.00s)
    --- PASS: TestComparisonAssertionFunc/notRegexp (0.00s)
=== RUN   TestValueAssertionFunc
=== RUN   TestValueAssertionFunc/notNil
=== RUN   TestValueAssertionFunc/nil
=== RUN   TestValueAssertionFunc/empty
=== RUN   TestValueAssertionFunc/notEmpty
=== RUN   TestValueAssertionFunc/zero
=== RUN   TestValueAssertionFunc/notZero
--- PASS: TestValueAssertionFunc (0.00s)
    --- PASS: TestValueAssertionFunc/notNil (0.00s)
    --- PASS: TestValueAssertionFunc/nil (0.00s)
    --- PASS: TestValueAssertionFunc/empty (0.00s)
    --- PASS: TestValueAssertionFunc/notEmpty (0.00s)
    --- PASS: TestValueAssertionFunc/zero (0.00s)
    --- PASS: TestValueAssertionFunc/notZero (0.00s)
=== RUN   TestBoolAssertionFunc
=== RUN   TestBoolAssertionFunc/true
=== RUN   TestBoolAssertionFunc/false
--- PASS: TestBoolAssertionFunc (0.00s)
    --- PASS: TestBoolAssertionFunc/true (0.00s)
    --- PASS: TestBoolAssertionFunc/false (0.00s)
=== RUN   TestErrorAssertionFunc
=== RUN   TestErrorAssertionFunc/noError
=== RUN   TestErrorAssertionFunc/error
--- PASS: TestErrorAssertionFunc (0.00s)
    --- PASS: TestErrorAssertionFunc/noError (0.00s)
    --- PASS: TestErrorAssertionFunc/error (0.00s)
PASS
ok    github.com/stretchr/testify/require (cached)
=== RUN   TestPassedReturnsTrueWhenAllTestsPass
--- PASS: TestPassedReturnsTrueWhenAllTestsPass (0.00s)
=== RUN   TestPassedReturnsFalseWhenSomeTestFails
--- PASS: TestPassedReturnsFalseWhenSomeTestFails (0.00s)
=== RUN   TestSuiteRequireTwice
=== RUN   TestSuiteRequireTwice
=== RUN   TestSuiteRequireTwice/TestRequireOne
    suite_test.go:42: 
          Error Trace:  /path/testify/suite/suite_test.go:42
          Error:        Not equal: 
                        expected: 1
                        actual  : 2
          Test:         TestSuiteRequireTwice/TestRequireOne
=== RUN   TestSuiteRequireTwice/TestRequireTwo
    suite_test.go:47: 
          Error Trace:  /path/testify/suite/suite_test.go:47
          Error:        Not equal: 
                        expected: 1
                        actual  : 2
          Test:         TestSuiteRequireTwice/TestRequireTwo
--- FAIL: TestSuiteRequireTwice (0.00s)
    --- FAIL: TestSuiteRequireTwice/TestRequireOne (0.00s)
    --- FAIL: TestSuiteRequireTwice/TestRequireTwo (0.00s)
--- PASS: TestSuiteRequireTwice (0.00s)
=== RUN   TestSuiteRecoverPanic
=== RUN   TestPanicInSetupSuite
    suite.go:77: test panicked: oops in setup suite
        goroutine 13 [running]:
        runtime/debug.Stack()
          /usr/lib/go-1.17/src/runtime/debug/stack.go:24 +0x72
        github.com/stretchr/testify/suite.failOnPanic(0xc000102d00, {0x928160, 0xa03d88})
          /path/testify/suite/suite.go:77 +0x45
        github.com/stretchr/testify/suite.recoverAndFailOnPanic(0xc000102000)
          /path/testify/suite/suite.go:72 +0x3f
        panic({0x928160, 0xa03d88})
          /usr/lib/go-1.17/src/runtime/panic.go:1047 +0x266
        github.com/stretchr/testify/suite.(*panickingSuite).SetupSuite(0xc0000898c0)
          /path/testify/suite/suite_test.go:63 +0x65
        github.com/stretchr/testify/suite.Run(0xc000102d00, {0xa0b720, 0xc0000898c0})
          /path/testify/suite/suite.go:132 +0x5b8
        github.com/stretchr/testify/suite.TestSuiteRecoverPanic.func1(0x0)
          /path/testify/suite/suite_test.go:108 +0xad
        testing.tRunner(0xc000102d00, 0x9a6408)
          /usr/lib/go-1.17/src/testing/testing.go:1259 +0x230
        created by testing.(*T).Run
          /usr/lib/go-1.17/src/testing/testing.go:1306 +0x727
--- FAIL: TestPanicInSetupSuite (0.01s)
=== RUN   TestPanicInSetupTest
=== RUN   TestPanicInSetupTest/Test
    suite.go:77: test panicked: oops in setup test
        goroutine 52 [running]:
        runtime/debug.Stack()
          /usr/lib/go-1.17/src/runtime/debug/stack.go:24 +0x72
        github.com/stretchr/testify/suite.failOnPanic(0xc0005024e0, {0x928160, 0xa03d98})
          /path/testify/suite/suite.go:77 +0x45
        github.com/stretchr/testify/suite.Run.func1.1()
          /path/testify/suite/suite.go:161 +0x34b
        panic({0x928160, 0xa03d98})
          /usr/lib/go-1.17/src/runtime/panic.go:1047 +0x266
        github.com/stretchr/testify/suite.(*panickingSuite).SetupTest(0xc0003b0040)
          /path/testify/suite/suite_test.go:69 +0x65
        github.com/stretchr/testify/suite.Run.func1(0xc0005024e0)
          /path/testify/suite/suite.go:165 +0x273
        testing.tRunner(0xc0005024e0, 0xc00024a000)
          /usr/lib/go-1.17/src/testing/testing.go:1259 +0x230
        created by testing.(*T).Run
          /usr/lib/go-1.17/src/testing/testing.go:1306 +0x727
--- FAIL: TestPanicInSetupTest (0.00s)
    --- FAIL: TestPanicInSetupTest/Test (0.00s)
=== RUN   TestPanicInBeforeTest
=== RUN   TestPanicInBeforeTest/Test
    suite.go:77: test panicked: oops in before test
        goroutine 54 [running]:
        runtime/debug.Stack()
          /usr/lib/go-1.17/src/runtime/debug/stack.go:24 +0x72
        github.com/stretchr/testify/suite.failOnPanic(0xc0005029c0, {0x928160, 0xa03da8})
          /path/testify/suite/suite.go:77 +0x45
        github.com/stretchr/testify/suite.Run.func1.1()
          /path/testify/suite/suite.go:161 +0x34b
        panic({0x928160, 0xa03da8})
          /usr/lib/go-1.17/src/runtime/panic.go:1047 +0x266
        github.com/stretchr/testify/suite.(*panickingSuite).BeforeTest(0xc0003b0e80, {0xa0b720, 0xc0003b0e80}, {0x4872b7, 0xbcc280})
          /path/testify/suite/suite_test.go:75 +0x65
        github.com/stretchr/testify/suite.Run.func1(0xc0005029c0)
          /path/testify/suite/suite.go:168 +0x319
        testing.tRunner(0xc0005029c0, 0xc00024a090)
          /usr/lib/go-1.17/src/testing/testing.go:1259 +0x230
        created by testing.(*T).Run
          /usr/lib/go-1.17/src/testing/testing.go:1306 +0x727
--- FAIL: TestPanicInBeforeTest (0.00s)
    --- FAIL: TestPanicInBeforeTest/Test (0.00s)
=== RUN   TestPanicInTest
=== RUN   TestPanicInTest/Test
    suite.go:77: test panicked: oops in test
        goroutine 56 [running]:
        runtime/debug.Stack()
          /usr/lib/go-1.17/src/runtime/debug/stack.go:24 +0x72
        github.com/stretchr/testify/suite.failOnPanic(0xc000483860, {0x928160, 0xa03db8})
          /path/testify/suite/suite.go:77 +0x45
        github.com/stretchr/testify/suite.Run.func1.1()
          /path/testify/suite/suite.go:161 +0x34b
        panic({0x928160, 0xa03db8})
          /usr/lib/go-1.17/src/runtime/panic.go:1047 +0x266
        github.com/stretchr/testify/suite.(*panickingSuite).Test(0xc0003b1c80)
          /path/testify/suite/suite_test.go:81 +0x65
        reflect.Value.call({0xc0003dc3c0, 0xc00058c8c0, 0x4a04e5}, {0x98b749, 0x4}, {0xc00006dda8, 0x1, 0xc00006dbc8})
          /usr/lib/go-1.17/src/reflect/value.go:556 +0xe7d
        reflect.Value.Call({0xc0003dc3c0, 0xc00058c8c0, 0xc0003b1c80}, {0xc00006dda8, 0x1, 0x1})
          /usr/lib/go-1.17/src/reflect/value.go:339 +0xd8
        github.com/stretchr/testify/suite.Run.func1(0xc000483860)
          /path/testify/suite/suite.go:175 +0x71d
        testing.tRunner(0xc000483860, 0xc000220000)
          /usr/lib/go-1.17/src/testing/testing.go:1259 +0x230
        created by testing.(*T).Run
          /usr/lib/go-1.17/src/testing/testing.go:1306 +0x727
--- FAIL: TestPanicInTest (0.00s)
    --- FAIL: TestPanicInTest/Test (0.00s)
=== RUN   TestPanicInAfterTest
=== RUN   TestPanicInAfterTest/Test
    suite.go:77: test panicked: oops in after test
        goroutine 58 [running]:
        runtime/debug.Stack()
          /usr/lib/go-1.17/src/runtime/debug/stack.go:24 +0x72
        github.com/stretchr/testify/suite.failOnPanic(0xc000483ba0, {0x928160, 0xa03c68})
          /path/testify/suite/suite.go:77 +0x45
        github.com/stretchr/testify/suite.recoverAndFailOnPanic(0xc000502680)
          /path/testify/suite/suite.go:72 +0x3f
        panic({0x928160, 0xa03c68})
          /usr/lib/go-1.17/src/runtime/panic.go:1047 +0x266
        github.com/stretchr/testify/suite.(*panickingSuite).AfterTest(0xc0003b0dc0, {0xa0b720, 0xc0003b0dc0}, {0x0, 0x0})
          /path/testify/suite/suite_test.go:87 +0x65
        github.com/stretchr/testify/suite.Run.func1.1()
          /path/testify/suite/suite.go:153 +0x2f5
        github.com/stretchr/testify/suite.Run.func1(0xc000483ba0)
          /path/testify/suite/suite.go:176 +0x720
        testing.tRunner(0xc000483ba0, 0xc000220090)
          /usr/lib/go-1.17/src/testing/testing.go:1259 +0x230
        created by testing.(*T).Run
          /usr/lib/go-1.17/src/testing/testing.go:1306 +0x727
--- FAIL: TestPanicInAfterTest (0.00s)
    --- FAIL: TestPanicInAfterTest/Test (0.00s)
=== RUN   TestPanicInTearDownTest
=== RUN   TestPanicInTearDownTest/Test
    suite.go:77: test panicked: oops in tear down test
        goroutine 60 [running]:
        runtime/debug.Stack()
          /usr/lib/go-1.17/src/runtime/debug/stack.go:24 +0x72
        github.com/stretchr/testify/suite.failOnPanic(0xc000483860, {0x928160, 0xa03c78})
          /path/testify/suite/suite.go:77 +0x45
        github.com/stretchr/testify/suite.recoverAndFailOnPanic(0xc000502680)
          /path/testify/suite/suite.go:72 +0x3f
        panic({0x928160, 0xa03c78})
          /usr/lib/go-1.17/src/runtime/panic.go:1047 +0x266
        github.com/stretchr/testify/suite.(*panickingSuite).TearDownTest(0xc0003b1bc0)
          /path/testify/suite/suite_test.go:93 +0x65
        github.com/stretchr/testify/suite.Run.func1.1()
          /path/testify/suite/suite.go:157 +0x319
        github.com/stretchr/testify/suite.Run.func1(0xc000483860)
          /path/testify/suite/suite.go:176 +0x720
        testing.tRunner(0xc000483860, 0xc00021c000)
          /usr/lib/go-1.17/src/testing/testing.go:1259 +0x230
        created by testing.(*T).Run
          /usr/lib/go-1.17/src/testing/testing.go:1306 +0x727
--- FAIL: TestPanicInTearDownTest (0.00s)
    --- FAIL: TestPanicInTearDownTest/Test (0.00s)
=== RUN   TestPanicInTearDownSuite
=== RUN   TestPanicInTearDownSuite/Test
=== CONT  TestPanicInTearDownSuite
    suite.go:77: test panicked: oops in tear down suite
        goroutine 61 [running]:
        runtime/debug.Stack()
          /usr/lib/go-1.17/src/runtime/debug/stack.go:24 +0x72
        github.com/stretchr/testify/suite.failOnPanic(0xc000483a00, {0x928160, 0xa03c88})
          /path/testify/suite/suite.go:77 +0x45
        github.com/stretchr/testify/suite.recoverAndFailOnPanic(0xc000102000)
          /path/testify/suite/suite.go:72 +0x3f
        panic({0x928160, 0xa03c88})
          /usr/lib/go-1.17/src/runtime/panic.go:1047 +0x266
        github.com/stretchr/testify/suite.(*panickingSuite).TearDownSuite(0xc0003b0dc0)
          /path/testify/suite/suite_test.go:99 +0x65
        github.com/stretchr/testify/suite.Run.func2()
          /path/testify/suite/suite.go:183 +0x8e
        github.com/stretchr/testify/suite.Run(0xc000483a00, {0xa0b720, 0xc0003b0dc0})
          /path/testify/suite/suite.go:194 +0x996
        github.com/stretchr/testify/suite.TestSuiteRecoverPanic.func7(0x0)
          /path/testify/suite/suite_test.go:132 +0xad
        testing.tRunner(0xc000483a00, 0x9a6438)
          /usr/lib/go-1.17/src/testing/testing.go:1259 +0x230
        created by testing.(*T).Run
          /usr/lib/go-1.17/src/testing/testing.go:1306 +0x727
--- FAIL: TestPanicInTearDownSuite (0.00s)
    --- PASS: TestPanicInTearDownSuite/Test (0.00s)
--- PASS: TestSuiteRecoverPanic (0.02s)
=== RUN   TestRunSuite
=== RUN   TestRunSuite/TestOne
=== RUN   TestRunSuite/TestSkip
    suite_test.go:227: 
=== RUN   TestRunSuite/TestSubtest
=== RUN   TestRunSuite/TestSubtest/first
=== RUN   TestRunSuite/TestSubtest/second
=== RUN   TestRunSuite/TestTwo
=== CONT  TestRunSuite
    suite_test.go:269: 
--- SKIP: TestRunSuite (0.01s)
    --- PASS: TestRunSuite/TestOne (0.00s)
    --- SKIP: TestRunSuite/TestSkip (0.00s)
    --- PASS: TestRunSuite/TestSubtest (0.00s)
        --- PASS: TestRunSuite/TestSubtest/first (0.00s)
        --- PASS: TestRunSuite/TestSubtest/second (0.00s)
    --- PASS: TestRunSuite/TestTwo (0.00s)
=== RUN   TestSkippingSuiteSetup
    suite.go:207: warning: no tests to run
--- PASS: TestSkippingSuiteSetup (0.00s)
=== RUN   TestSuiteGetters
--- PASS: TestSuiteGetters (0.00s)
=== RUN   TestSuiteLogging
--- PASS: TestSuiteLogging (0.00s)
=== RUN   TestSuiteCallOrder
=== RUN   TestSuiteCallOrder/Test_A
=== RUN   TestSuiteCallOrder/Test_B
--- PASS: TestSuiteCallOrder (0.84s)
    --- PASS: TestSuiteCallOrder/Test_A (0.19s)
    --- PASS: TestSuiteCallOrder/Test_B (0.22s)
=== RUN   TestSuiteWithStats
=== RUN   WithStats
=== RUN   WithStats/TestPanic
    suite.go:77: test panicked: oops
        goroutine 31 [running]:
        runtime/debug.Stack()
          /usr/lib/go-1.17/src/runtime/debug/stack.go:24 +0x72
        github.com/stretchr/testify/suite.failOnPanic(0xc000502d00, {0x928160, 0xa03d38})
          /path/testify/suite/suite.go:77 +0x45
        github.com/stretchr/testify/suite.Run.func1.1()
          /path/testify/suite/suite.go:161 +0x34b
        panic({0x928160, 0xa03d38})
          /usr/lib/go-1.17/src/runtime/panic.go:1047 +0x266
        github.com/stretchr/testify/suite.(*suiteWithStats).TestPanic(0x3600000000000000)
          /path/testify/suite/suite_test.go:505 +0x31
        reflect.Value.call({0xc000595b00, 0xc000690cb0, 0xc00009fd40}, {0x98b749, 0x4}, {0xc00006dda8, 0x1, 0xc00006dbc8})
          /usr/lib/go-1.17/src/reflect/value.go:556 +0xe7d
        reflect.Value.Call({0xc000595b00, 0xc000690cb0, 0x90cef1}, {0xc00006dda8, 0x1, 0x1})
          /usr/lib/go-1.17/src/reflect/value.go:339 +0xd8
        github.com/stretchr/testify/suite.Run.func1(0xc000502d00)
          /path/testify/suite/suite.go:175 +0x71d
        testing.tRunner(0xc000502d00, 0xc0002f4000)
          /usr/lib/go-1.17/src/testing/testing.go:1259 +0x230
        created by testing.(*T).Run
          /usr/lib/go-1.17/src/testing/testing.go:1306 +0x727
=== RUN   WithStats/TestSomething
--- FAIL: WithStats (0.01s)
    --- FAIL: WithStats/TestPanic (0.00s)
    --- PASS: WithStats/TestSomething (0.00s)
--- PASS: TestSuiteWithStats (0.01s)
=== RUN   TestFailfastSuite
=== RUN   TestFailfastSuite
=== RUN   TestFailfastSuite/Test_A_Fails
    suite_test.go:600: Test A meant to fail
=== RUN   TestFailfastSuite/Test_B_Passes
--- FAIL: TestFailfastSuite (0.01s)
    --- FAIL: TestFailfastSuite/Test_A_Fails (0.00s)
    --- PASS: TestFailfastSuite/Test_B_Passes (0.00s)
--- PASS: TestFailfastSuite (0.01s)
=== RUN   TestFailfastSuiteFailFastOn
    suite_test.go:575: Running go test -v -race -run TestFailfastSuite -failfast
    suite_test.go:577: === RUN   TestFailfastSuite
        === RUN   TestFailfastSuite
        === RUN   TestFailfastSuite/Test_A_Fails
            suite_test.go:600: Test A meant to fail
        --- FAIL: TestFailfastSuite (0.00s)
            --- FAIL: TestFailfastSuite/Test_A_Fails (0.00s)
        --- PASS: TestFailfastSuite (0.00s)
        PASS
        ok    github.com/stretchr/testify/suite 0.033s
        
--- PASS: TestFailfastSuiteFailFastOn (0.31s)
PASS
ok    github.com/stretchr/testify/suite (cached)
testify$ echo $?
0
``

WAT? :angry:

`FAIL:`, `FAIL:`, `FAIL:`, but for some reason pass??
AND exit code 0?!?!?

@stdedos
Copy link
Contributor Author

stdedos commented Jun 29, 2022

Github didn't render the last bit of the previous comment's output:

WAT? 😠

FAIL:, FAIL:, FAIL:, but for some reason pass??
AND exit code 0?!?!?

Having said that, I am not asking go customer support; however the go test runner is a little bit ... misleading

@boyan-soubachov
Copy link
Collaborator

boyan-soubachov commented Jun 29, 2022

It's because some of the test involve testing the test suite for failure. I.e. we want to confirm that Suite fails in certain cases, it's a little bit meta :)

@boyan-soubachov
Copy link
Collaborator

Anyways, do you mind pasting an example of what the output looks now when a test fails (i.e. this new change in action)

@stdedos
Copy link
Contributor Author

stdedos commented Jun 29, 2022

Before:

$ go test ./...
ok  	github.com/stretchr/testify	0.002s
ok  	github.com/stretchr/testify/assert	0.343s
?   	github.com/stretchr/testify/http	[no test files]
--- FAIL: Test_Mock_Chained_On (0.00s)
    mock_test.go:177: 
        	Error Trace:	mock_test.go:177
        	Error:      	Not equal: 
        	            	expected: []*mock.Call{(*mock.Call)(0xc0001484d0), (*mock.Call)(0xc000148580)}
        	            	actual  : []*mock.Call{(*mock.Call)(0xc000148370), (*mock.Call)(0xc000148420)}
        	            	
        	            	Diff:
        	            	--- Expected
        	            	+++ Actual
        	            	@@ -4,25 +4,3 @@
        	            	    ExpectedCalls: ([]*mock.Call) (len=2) {
        	            	-    (*mock.Call)({
        	            	-     Parent: (*mock.Mock)(<already shown>),
        	            	-     Method: (string) (len=16) "TheExampleMethod",
        	            	-     Arguments: (mock.Arguments) (len=3) {
        	            	-      (int) 1,
        	            	-      (int) 2,
        	            	-      (int) 3
        	            	-     },
        	            	-     ReturnArguments: (mock.Arguments) (len=1) {
        	            	-      (int) 0
        	            	-     },
        	            	-     callerInfo: ([]string) (len=1) {
        	            	-      (string) (len=16) "mock_test.go:156"
        	            	-     },
        	            	-     Repeatability: (int) 0,
        	            	-     totalCalls: (int) 0,
        	            	-     optional: (bool) false,
        	            	-     WaitFor: (<-chan time.Time) <nil>,
        	            	-     waitTime: (time.Duration) 0,
        	            	-     RunFn: (func(mock.Arguments)) <nil>,
        	            	-     PanicMsg: (*string)(<nil>),
        	            	-     requires: ([]*mock.Call) <nil>
        	            	-    }),
        	            	+    (*mock.Call)(<already shown>),
        	            	     (*mock.Call)({
        	            	@@ -67,3 +45,3 @@
        	            	   callerInfo: ([]string) (len=1) {
        	            	-   (string) (len=17) "mock_test.go: 156"
        	            	+   (string) (len=16) "mock_test.go:156"
        	            	   },
        	            	@@ -104,23 +82,3 @@
        	            	     }),
        	            	-    (*mock.Call)({
        	            	-     Parent: (*mock.Mock)(<already shown>),
        	            	-     Method: (string) (len=17) "TheExampleMethod3",
        	            	-     Arguments: (mock.Arguments) (len=1) {
        	            	-      (mock.AnythingOfTypeArgument) (len=17) "*mock.ExampleType"
        	            	-     },
        	            	-     ReturnArguments: (mock.Arguments) (len=1) {
        	            	-      (interface {}) <nil>
        	            	-     },
        	            	-     callerInfo: ([]string) (len=1) {
        	            	-      (string) (len=16) "mock_test.go:158"
        	            	-     },
        	            	-     Repeatability: (int) 0,
        	            	-     totalCalls: (int) 0,
        	            	-     optional: (bool) false,
        	            	-     WaitFor: (<-chan time.Time) <nil>,
        	            	-     waitTime: (time.Duration) 0,
        	            	-     RunFn: (func(mock.Arguments)) <nil>,
        	            	-     PanicMsg: (*string)(<nil>),
        	            	-     requires: ([]*mock.Call) <nil>
        	            	-    })
        	            	+    (*mock.Call)(<already shown>)
        	            	    },
        	Test:       	Test_Mock_Chained_On
FAIL
FAIL	github.com/stretchr/testify/mock	0.028s
ok  	github.com/stretchr/testify/require	0.009s
ok  	github.com/stretchr/testify/suite	2.334s
FAIL

After:

$ go test ./...
ok  	github.com/stretchr/testify	(cached)
ok  	github.com/stretchr/testify/assert	(cached)
?   	github.com/stretchr/testify/http	[no test files]
--- FAIL: Test_Mock_Chained_On (0.00s)
    mock_test.go:177: 
        	Error Trace:	/this/is/otherwise/a/path/testify/mock/mock_test.go:177
        	Error:      	Not equal: 
        	            	expected: []*mock.Call{(*mock.Call)(0xc0000be4d0), (*mock.Call)(0xc0000be580)}
        	            	actual  : []*mock.Call{(*mock.Call)(0xc0000be370), (*mock.Call)(0xc0000be420)}
        	            	
        	            	Diff:
        	            	--- Expected
        	            	+++ Actual
        	            	@@ -4,25 +4,3 @@
        	            	    ExpectedCalls: ([]*mock.Call) (len=2) {
        	            	-    (*mock.Call)({
        	            	-     Parent: (*mock.Mock)(<already shown>),
        	            	-     Method: (string) (len=16) "TheExampleMethod",
        	            	-     Arguments: (mock.Arguments) (len=3) {
        	            	-      (int) 1,
        	            	-      (int) 2,
        	            	-      (int) 3
        	            	-     },
        	            	-     ReturnArguments: (mock.Arguments) (len=1) {
        	            	-      (int) 0
        	            	-     },
        	            	-     callerInfo: ([]string) (len=1) {
        	            	-      (string) (len=69) "/this/is/otherwise/a/path/testify/mock/mock_test.go:156"
        	            	-     },
        	            	-     Repeatability: (int) 0,
        	            	-     totalCalls: (int) 0,
        	            	-     optional: (bool) false,
        	            	-     WaitFor: (<-chan time.Time) <nil>,
        	            	-     waitTime: (time.Duration) 0,
        	            	-     RunFn: (func(mock.Arguments)) <nil>,
        	            	-     PanicMsg: (*string)(<nil>),
        	            	-     requires: ([]*mock.Call) <nil>
        	            	-    }),
        	            	+    (*mock.Call)(<already shown>),
        	            	     (*mock.Call)({
        	            	@@ -104,23 +82,3 @@
        	            	     }),
        	            	-    (*mock.Call)({
        	            	-     Parent: (*mock.Mock)(<already shown>),
        	            	-     Method: (string) (len=17) "TheExampleMethod3",
        	            	-     Arguments: (mock.Arguments) (len=1) {
        	            	-      (mock.AnythingOfTypeArgument) (len=17) "*mock.ExampleType"
        	            	-     },
        	            	-     ReturnArguments: (mock.Arguments) (len=1) {
        	            	-      (interface {}) <nil>
        	            	-     },
        	            	-     callerInfo: ([]string) (len=1) {
        	            	-      (string) (len=69) "/this/is/otherwise/a/path/testify/mock/mock_test.go:158"
        	            	-     },
        	            	-     Repeatability: (int) 0,
        	            	-     totalCalls: (int) 0,
        	            	-     optional: (bool) false,
        	            	-     WaitFor: (<-chan time.Time) <nil>,
        	            	-     waitTime: (time.Duration) 0,
        	            	-     RunFn: (func(mock.Arguments)) <nil>,
        	            	-     PanicMsg: (*string)(<nil>),
        	            	-     requires: ([]*mock.Call) <nil>
        	            	-    })
        	            	+    (*mock.Call)(<already shown>)
        	            	    },
        	            	@@ -142,3 +100,3 @@
        	            	   callerInfo: ([]string) (len=1) {
        	            	-   (string) (len=70) "/this/is/otherwise/a/path/testify/mock/mock_test.go: 158"
        	            	+   (string) (len=69) "/this/is/otherwise/a/path/testify/mock/mock_test.go:158"
        	            	   },
        	Test:       	Test_Mock_Chained_On
FAIL
FAIL	github.com/stretchr/testify/mock	0.029s
ok  	github.com/stretchr/testify/require	(cached)
ok  	github.com/stretchr/testify/suite	1.337s
FAIL
Diff
--- before	2022-06-29 13:51:28.588608873 +0300
+++ after	2022-06-29 13:51:40.860654261 +0300
@@ -1,13 +1,13 @@
 $ go test ./...
-ok  	github.com/stretchr/testify	0.002s
-ok  	github.com/stretchr/testify/assert	0.343s
+ok  	github.com/stretchr/testify	(cached)
+ok  	github.com/stretchr/testify/assert	(cached)
 ?   	github.com/stretchr/testify/http	[no test files]
 --- FAIL: Test_Mock_Chained_On (0.00s)
     mock_test.go:177: 
-        	Error Trace:	mock_test.go:177
+        	Error Trace:	/this/is/otherwise/a/path/testify/mock/mock_test.go:177
         	Error:      	Not equal: 
-        	            	expected: []*mock.Call{(*mock.Call)(0xc0001484d0), (*mock.Call)(0xc000148580)}
-        	            	actual  : []*mock.Call{(*mock.Call)(0xc000148370), (*mock.Call)(0xc000148420)}
+        	            	expected: []*mock.Call{(*mock.Call)(0xc0000be4d0), (*mock.Call)(0xc0000be580)}
+        	            	actual  : []*mock.Call{(*mock.Call)(0xc0000be370), (*mock.Call)(0xc0000be420)}
         	            	
         	            	Diff:
         	            	--- Expected
@@ -26,7 +26,7 @@
         	            	-      (int) 0
         	            	-     },
         	            	-     callerInfo: ([]string) (len=1) {
-        	            	-      (string) (len=16) "mock_test.go:156"
+        	            	-      (string) (len=69) "/this/is/otherwise/a/path/testify/mock/mock_test.go:156"
         	            	-     },
         	            	-     Repeatability: (int) 0,
         	            	-     totalCalls: (int) 0,
@@ -39,11 +39,6 @@
         	            	-    }),
         	            	+    (*mock.Call)(<already shown>),
         	            	     (*mock.Call)({
-        	            	@@ -67,3 +45,3 @@
-        	            	   callerInfo: ([]string) (len=1) {
-        	            	-   (string) (len=17) "mock_test.go: 156"
-        	            	+   (string) (len=16) "mock_test.go:156"
-        	            	   },
         	            	@@ -104,23 +82,3 @@
         	            	     }),
         	            	-    (*mock.Call)({
@@ -56,7 +51,7 @@
         	            	-      (interface {}) <nil>
         	            	-     },
         	            	-     callerInfo: ([]string) (len=1) {
-        	            	-      (string) (len=16) "mock_test.go:158"
+        	            	-      (string) (len=69) "/this/is/otherwise/a/path/testify/mock/mock_test.go:158"
         	            	-     },
         	            	-     Repeatability: (int) 0,
         	            	-     totalCalls: (int) 0,
@@ -69,9 +64,14 @@
         	            	-    })
         	            	+    (*mock.Call)(<already shown>)
         	            	    },
+        	            	@@ -142,3 +100,3 @@
+        	            	   callerInfo: ([]string) (len=1) {
+        	            	-   (string) (len=70) "/this/is/otherwise/a/path/testify/mock/mock_test.go: 158"
+        	            	+   (string) (len=69) "/this/is/otherwise/a/path/testify/mock/mock_test.go:158"
+        	            	   },
         	Test:       	Test_Mock_Chained_On
 FAIL
-FAIL	github.com/stretchr/testify/mock	0.028s
-ok  	github.com/stretchr/testify/require	0.009s
-ok  	github.com/stretchr/testify/suite	2.334s
+FAIL	github.com/stretchr/testify/mock	0.029s
+ok  	github.com/stretchr/testify/require	(cached)
+ok  	github.com/stretchr/testify/suite	1.337s
 FAIL

@boyan-soubachov
Copy link
Collaborator

Looks good. I'm happy to merge. Thank you for your contribution :)

@boyan-soubachov boyan-soubachov merged commit 181cea6 into stretchr:master Jun 29, 2022
@stdedos
Copy link
Contributor Author

stdedos commented Jun 29, 2022

YAY! 🎉 🎉 🎉 🎉 🎉

Thank you for the frictionless experience @boyan-soubachov 😄

@bozaro
Copy link
Contributor

bozaro commented Oct 26, 2022

This PR is broken and print invalid path:

@twelvelabs
Copy link

Yeah, I have a number of tests that have to run inside a temp dir (they mutate files). With this change the test failures become super difficult to parse:

    git_test.go:49: 
        	Error Trace:	/private/var/folders/ft/237rv1m913z3nvkg_c8n1xhh0000gn/T/TestStatusLines555458057/001/git_test.go:49
        	            				/private/var/folders/ft/237rv1m913z3nvkg_c8n1xhh0000gn/T/TestStatusLines555458057/001/git_test.go:95
        	            				/private/var/folders/ft/237rv1m913z3nvkg_c8n1xhh0000gn/T/TestStatusLines555458057/001/git_test.go:41
        	Error:      	Not equal: 
        	            	expected: 0
        	            	actual  : 1
        	Test:       	TestStatusLines
    git_test.go:56: 
        	Error Trace:	/private/var/folders/ft/237rv1m913z3nvkg_c8n1xhh0000gn/T/TestStatusLines555458057/001/git_test.go:56
        	            				/private/var/folders/ft/237rv1m913z3nvkg_c8n1xhh0000gn/T/TestStatusLines555458057/001/git_test.go:95
        	            				/private/var/folders/ft/237rv1m913z3nvkg_c8n1xhh0000gn/T/TestStatusLines555458057/001/git_test.go:41
        	Error:      	Not equal: 
        	            	expected: 1
        	            	actual  : 2
        	Test:       	TestStatusLines
    git_test.go:64: 
        	Error Trace:	/private/var/folders/ft/237rv1m913z3nvkg_c8n1xhh0000gn/T/TestStatusLines555458057/001/git_test.go:64
        	            				/private/var/folders/ft/237rv1m913z3nvkg_c8n1xhh0000gn/T/TestStatusLines555458057/001/git_test.go:95
        	            				/private/var/folders/ft/237rv1m913z3nvkg_c8n1xhh0000gn/T/TestStatusLines555458057/001/git_test.go:41

[etc...]

It looks semi-bearable here, but w/ text wrapping in the terminal its impossible to parse.

👍 for backing this out.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants