diff --git a/src/ResourceManager/Compute/Commands.Compute.Test/Commands.Compute.Test.csproj b/src/ResourceManager/Compute/Commands.Compute.Test/Commands.Compute.Test.csproj
index 38a7b42af56c..c3698b717929 100644
--- a/src/ResourceManager/Compute/Commands.Compute.Test/Commands.Compute.Test.csproj
+++ b/src/ResourceManager/Compute/Commands.Compute.Test/Commands.Compute.Test.csproj
@@ -167,6 +167,7 @@
+
@@ -237,6 +238,9 @@
Always
+
+ Always
+
Always
diff --git a/src/ResourceManager/Compute/Commands.Compute.Test/ScenarioTests/RunnerTests.cs b/src/ResourceManager/Compute/Commands.Compute.Test/ScenarioTests/RunnerTests.cs
new file mode 100644
index 000000000000..6ed37e4823fa
--- /dev/null
+++ b/src/ResourceManager/Compute/Commands.Compute.Test/ScenarioTests/RunnerTests.cs
@@ -0,0 +1,76 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using Microsoft.IdentityModel.Clients.ActiveDirectory;
+using Microsoft.Rest.ClientRuntime.Azure.TestFramework;
+using Xunit;
+
+namespace Microsoft.Azure.Commands.Compute.Test.ScenarioTests
+{
+ public class RunnerTests
+ {
+ [Fact]
+ public void ExecuteRunnerTests()
+ {
+ var mode = Environment.GetEnvironmentVariable("AZURE_TEST_MODE");
+ var csmAuth = Environment.GetEnvironmentVariable("TEST_CSM_ORGID_AUTHENTICATION");
+
+ if (mode == null || csmAuth == null || mode.ToLower() != "record")
+ {
+ return;
+ }
+
+ Assert.False(string.IsNullOrEmpty(csmAuth));
+ Assert.True(csmAuth.Contains("AADTenant"));
+
+ var envDictionary = TestUtilities.ParseConnectionString(csmAuth);
+ var testEnv = new TestEnvironment(envDictionary);
+ Assert.NotNull(testEnv.Tenant);
+ Assert.NotNull(testEnv.SubscriptionId);
+ Assert.NotNull(testEnv.ClientId);
+ Assert.True(envDictionary.ContainsKey("ApplicationSecret"));
+
+ var authenticationContext = new AuthenticationContext("https://login.windows.net/" + testEnv.Tenant);
+ var credential = new ClientCredential(testEnv.ClientId, envDictionary["ApplicationSecret"]);
+
+ var result = authenticationContext.AcquireToken("https://management.core.windows.net/", clientCredential: credential);
+ Assert.NotNull(result.AccessToken);
+ envDictionary["RawToken"] = result.AccessToken;
+
+ FixCSMAuthEnvVariable(envDictionary);
+
+ Console.WriteLine(Environment.GetEnvironmentVariable("TEST_CSM_ORGID_AUTHENTICATION"));
+
+ var testFile = File.ReadAllLines("ScenarioTests\\RunnerTests.csv");
+ foreach (var line in testFile)
+ {
+ var tokens = line.Split(';');
+ var className = tokens[0];
+ var type = Type.GetType(className);
+ var constructorInfo = type.GetConstructor(Type.EmptyTypes);
+ for (int i = 1; i < tokens.Length; i++)
+ {
+ var method = tokens[i];
+ var testClassInstance = constructorInfo.Invoke(new object[] {});
+ var testMethod = type.GetMethod(method);
+
+ testMethod.Invoke(testClassInstance, new object[] {});
+ }
+ }
+ }
+
+ private void FixCSMAuthEnvVariable(IDictionary envDictionary)
+ {
+ var str = string.Empty;
+ foreach (var entry in envDictionary)
+ {
+ if (entry.Key != "AADClientId" && entry.Key != "ApplicationSecret")
+ {
+ str += string.Format("{0}={1};", entry.Key, entry.Value);
+ }
+ }
+
+ Environment.SetEnvironmentVariable("TEST_CSM_ORGID_AUTHENTICATION", str);
+ }
+ }
+}
diff --git a/src/ResourceManager/Compute/Commands.Compute.Test/ScenarioTests/RunnerTests.csv b/src/ResourceManager/Compute/Commands.Compute.Test/ScenarioTests/RunnerTests.csv
new file mode 100644
index 000000000000..a39087cf3bae
--- /dev/null
+++ b/src/ResourceManager/Compute/Commands.Compute.Test/ScenarioTests/RunnerTests.csv
@@ -0,0 +1,5 @@
+Microsoft.Azure.Commands.Compute.Test.ScenarioTests.AvailabilitySetTests;TestAvailabilitySet
+Microsoft.Azure.Commands.Compute.Test.ScenarioTests.ComputeCloudExceptionTests;RunComputeCloudExceptionTests
+Microsoft.Azure.Commands.Compute.Test.ScenarioTests.VirtualMachineTests;TestLinuxVirtualMachine
+Microsoft.Azure.Commands.Compute.Test.ScenarioTests.VirtualMachineProfileTests;TestVirtualMachineProfile
+Microsoft.Azure.Commands.Compute.Test.ScenarioTests.VMDynamicTests;RunVMDynamicTests