diff --git a/src/csharp/Grpc.IntegrationTesting/InteropClient.cs b/src/csharp/Grpc.IntegrationTesting/InteropClient.cs
index d3b7fe87f3cff0df3a39cac758c753add46087fe..c99084d1a90dcb0ad123eef24c02b07bfd56055a 100644
--- a/src/csharp/Grpc.IntegrationTesting/InteropClient.cs
+++ b/src/csharp/Grpc.IntegrationTesting/InteropClient.cs
@@ -115,6 +115,24 @@ namespace Grpc.IntegrationTesting
         }
 
         private async Task Run()
+        {
+            var credentials = await CreateCredentialsAsync();
+            
+            List<ChannelOption> channelOptions = null;
+            if (!string.IsNullOrEmpty(options.ServerHostOverride))
+            {
+                channelOptions = new List<ChannelOption>
+                {
+                    new ChannelOption(ChannelOptions.SslTargetNameOverride, options.ServerHostOverride)
+                };
+            }
+            var channel = new Channel(options.ServerHost, options.ServerPort, credentials, channelOptions);
+            TestService.TestServiceClient client = new TestService.TestServiceClient(channel);
+            await RunTestCaseAsync(client, options);
+            await channel.ShutdownAsync();
+        }
+
+        private async Task<Credentials> CreateCredentialsAsync()
         {
             var credentials = options.UseTls ? TestCredentials.CreateTestClientCredentials(options.UseTestCa) : Credentials.Insecure;
 
@@ -131,19 +149,7 @@ namespace Grpc.IntegrationTesting
                 Assert.IsFalse(googleCredential.IsCreateScopedRequired);
                 credentials = CompositeCredentials.Create(googleCredential.ToGrpcCredentials(), credentials);
             }
-            
-            List<ChannelOption> channelOptions = null;
-            if (!string.IsNullOrEmpty(options.ServerHostOverride))
-            {
-                channelOptions = new List<ChannelOption>
-                {
-                    new ChannelOption(ChannelOptions.SslTargetNameOverride, options.ServerHostOverride)
-                };
-            }
-            var channel = new Channel(options.ServerHost, options.ServerPort, credentials, channelOptions);
-            TestService.TestServiceClient client = new TestService.TestServiceClient(channel);
-            await RunTestCaseAsync(client, options);
-            await channel.ShutdownAsync();
+            return credentials;
         }
 
         private async Task RunTestCaseAsync(TestService.TestServiceClient client, ClientOptions options)