diff --git a/server/interceptor_test.go b/server/interceptor_test.go
index 66326c41c..f93a2eb1b 100644
--- a/server/interceptor_test.go
+++ b/server/interceptor_test.go
@@ -23,85 +23,77 @@ import (
 	"path"
 	"testing"
 
-	"github.com/stretchr/testify/assert"
-	"github.com/stretchr/testify/require"
-	"github.com/stretchr/testify/suite"
 	"google.golang.org/grpc"
 	"google.golang.org/grpc/metadata"
+	"gotest.tools/v3/assert"
+	"gotest.tools/v3/assert/cmp"
 
 	"github.com/docker/api/config"
 	apicontext "github.com/docker/api/context"
 )
 
-type interceptorSuite struct {
-	suite.Suite
-	dir string
-	ctx context.Context
-}
-
-func (is *interceptorSuite) BeforeTest(suiteName, testName string) {
+func testContext(t *testing.T) context.Context {
 	dir, err := ioutil.TempDir("", "example")
-	require.Nil(is.T(), err)
+	assert.NilError(t, err)
+
+	t.Cleanup(func() {
+		_ = os.RemoveAll(dir)
+	})
 
 	ctx := context.Background()
 	ctx = config.WithDir(ctx, dir)
 	err = ioutil.WriteFile(path.Join(dir, "config.json"), []byte(`{"currentContext": "default"}`), 0644)
-	require.Nil(is.T(), err)
+	assert.NilError(t, err)
 
-	is.dir = dir
-	is.ctx = ctx
+	return ctx
 }
 
-func (is *interceptorSuite) AfterTest(suiteName, tesName string) {
-	err := os.RemoveAll(is.dir)
-	require.Nil(is.T(), err)
+func TestUnaryGetCurrentContext(t *testing.T) {
+	ctx := testContext(t)
+	interceptor := unaryServerInterceptor(ctx)
+
+	currentContext := callUnary(context.Background(), t, interceptor)
+	assert.Equal(t, currentContext, "default")
 }
 
-func (is *interceptorSuite) TestUnaryGetCurrentContext() {
-	interceptor := unaryServerInterceptor(is.ctx)
-
-	currentContext := is.callUnary(context.Background(), interceptor)
-
-	assert.Equal(is.T(), "default", currentContext)
-}
-
-func (is *interceptorSuite) TestUnaryContextFromMetadata() {
+func TestUnaryContextFromMetadata(t *testing.T) {
+	ctx := testContext(t)
 	contextName := "test"
 
-	interceptor := unaryServerInterceptor(is.ctx)
+	interceptor := unaryServerInterceptor(ctx)
 	reqCtx := context.Background()
 	reqCtx = metadata.NewIncomingContext(reqCtx, metadata.MD{
 		(key): []string{contextName},
 	})
 
-	currentContext := is.callUnary(reqCtx, interceptor)
-
-	assert.Equal(is.T(), contextName, currentContext)
+	currentContext := callUnary(reqCtx, t, interceptor)
+	assert.Equal(t, contextName, currentContext)
 }
 
-func (is *interceptorSuite) TestStreamGetCurrentContext() {
-	interceptor := streamServerInterceptor(is.ctx)
+func TestStreamGetCurrentContext(t *testing.T) {
+	ctx := testContext(t)
+	interceptor := streamServerInterceptor(ctx)
 
-	currentContext := is.callStream(context.Background(), interceptor)
+	currentContext := callStream(context.Background(), t, interceptor)
 
-	assert.Equal(is.T(), "default", currentContext)
+	assert.Equal(t, currentContext, "default")
 }
 
-func (is *interceptorSuite) TestStreamContextFromMetadata() {
+func TestStreamContextFromMetadata(t *testing.T) {
+	ctx := testContext(t)
 	contextName := "test"
 
-	interceptor := streamServerInterceptor(is.ctx)
+	interceptor := streamServerInterceptor(ctx)
 	reqCtx := context.Background()
 	reqCtx = metadata.NewIncomingContext(reqCtx, metadata.MD{
 		(key): []string{contextName},
 	})
 
-	currentContext := is.callStream(reqCtx, interceptor)
-
-	assert.Equal(is.T(), contextName, currentContext)
+	currentContext := callStream(reqCtx, t, interceptor)
+	assert.Equal(t, currentContext, contextName)
 }
 
-func (is *interceptorSuite) callStream(ctx context.Context, interceptor grpc.StreamServerInterceptor) string {
+func callStream(ctx context.Context, t *testing.T, interceptor grpc.StreamServerInterceptor) string {
 	currentContext := ""
 	err := interceptor(nil, &contextServerStream{
 		ctx: ctx,
@@ -112,12 +104,12 @@ func (is *interceptorSuite) callStream(ctx context.Context, interceptor grpc.Str
 		return nil
 	})
 
-	require.Nil(is.T(), err)
+	assert.NilError(t, err)
 
 	return currentContext
 }
 
-func (is *interceptorSuite) callUnary(ctx context.Context, interceptor grpc.UnaryServerInterceptor) string {
+func callUnary(ctx context.Context, t *testing.T, interceptor grpc.UnaryServerInterceptor) string {
 	currentContext := ""
 	resp, err := interceptor(ctx, nil, &grpc.UnaryServerInfo{
 		FullMethod: "/com.docker.api.protos.context.v1.Contexts/test",
@@ -126,12 +118,8 @@ func (is *interceptorSuite) callUnary(ctx context.Context, interceptor grpc.Unar
 		return nil, nil
 	})
 
-	require.Nil(is.T(), err)
-	require.Nil(is.T(), resp)
+	assert.NilError(t, err)
+	assert.Assert(t, cmp.Nil(resp))
 
 	return currentContext
 }
-
-func TestInterceptor(t *testing.T) {
-	suite.Run(t, new(interceptorSuite))
-}
diff --git a/server/proxy/containers_test.go b/server/proxy/containers_test.go
index 8e8dc7f98..2c0aee2b9 100644
--- a/server/proxy/containers_test.go
+++ b/server/proxy/containers_test.go
@@ -3,7 +3,7 @@ package proxy
 import (
 	"testing"
 
-	"gotest.tools/assert"
+	"gotest.tools/v3/assert"
 
 	"github.com/docker/api/containers"
 	"github.com/docker/api/formatter"
diff --git a/server/proxy/streams/logs_test.go b/server/proxy/streams/logs_test.go
index 8682acb3a..8b1d21903 100644
--- a/server/proxy/streams/logs_test.go
+++ b/server/proxy/streams/logs_test.go
@@ -20,8 +20,9 @@ import (
 	"context"
 	"testing"
 
-	"github.com/stretchr/testify/assert"
 	"google.golang.org/grpc/metadata"
+	"gotest.tools/v3/assert"
+	"gotest.tools/v3/assert/cmp"
 
 	v1 "github.com/docker/api/protos/containers/v1"
 )
@@ -68,7 +69,9 @@ func TestLogStreamWriter(t *testing.T) {
 
 	l, err := sw.Write(in)
 
-	assert.Nil(t, err)
-	assert.Equal(t, len(in), l)
-	assert.Equal(t, expected, ls.logs)
+	assert.NilError(t, err)
+	assert.Assert(t, cmp.Len(in, l))
+	logs, ok := (ls.logs).(*v1.LogsResponse)
+	assert.Assert(t, ok)
+	assert.DeepEqual(t, logs.Value, expected.Value)
 }
diff --git a/server/proxy/streams/stream_test.go b/server/proxy/streams/stream_test.go
index 53adcd8ab..9bed1eaa2 100644
--- a/server/proxy/streams/stream_test.go
+++ b/server/proxy/streams/stream_test.go
@@ -22,11 +22,12 @@ import (
 	"testing"
 
 	"google.golang.org/grpc/metadata"
+	"google.golang.org/protobuf/types/known/anypb"
 
 	"github.com/golang/protobuf/ptypes"
 	"github.com/golang/protobuf/ptypes/any"
-	"github.com/stretchr/testify/assert"
-	"github.com/stretchr/testify/require"
+	"gotest.tools/v3/assert"
+	"gotest.tools/v3/assert/cmp"
 
 	streamsv1 "github.com/docker/api/protos/streams/v1"
 )
@@ -76,7 +77,7 @@ func getReader(t *testing.T, in []byte, errResult error) IO {
 		Value: in,
 	}
 	m, err := ptypes.MarshalAny(&message)
-	require.Nil(t, err)
+	assert.NilError(t, err)
 
 	return IO{
 		Stream: &Stream{
@@ -93,7 +94,7 @@ func getAny(t *testing.T, in []byte) *any.Any {
 		Type:  streamsv1.IOStream_STDOUT,
 		Value: in,
 	})
-	require.Nil(t, err)
+	assert.NilError(t, err)
 	return value
 }
 
@@ -104,9 +105,9 @@ func TestStreamReader(t *testing.T) {
 
 	n, err := r.Read(buffer)
 
-	assert.Nil(t, err)
-	assert.Equal(t, 5, n)
-	assert.Equal(t, in, buffer)
+	assert.NilError(t, err)
+	assert.Equal(t, n, 5)
+	assert.DeepEqual(t, buffer, in)
 }
 
 func TestStreamReaderError(t *testing.T) {
@@ -116,8 +117,8 @@ func TestStreamReaderError(t *testing.T) {
 
 	n, err := r.Read(buffer)
 
-	assert.Equal(t, 0, n)
-	assert.Equal(t, err, errResult)
+	assert.Equal(t, n, 0)
+	assert.Error(t, err, errResult.Error())
 }
 
 func TestStreamWriter(t *testing.T) {
@@ -132,7 +133,9 @@ func TestStreamWriter(t *testing.T) {
 	}
 
 	n, err := w.Write(in)
-	assert.Nil(t, err)
-	assert.Equal(t, len(in), n)
-	assert.Equal(t, expected, bs.sendResult)
+	assert.NilError(t, err)
+	assert.Assert(t, cmp.Len(in, n))
+	sendResult, ok := (bs.sendResult).(*anypb.Any)
+	assert.Assert(t, ok)
+	assert.DeepEqual(t, sendResult.Value, expected.Value)
 }