public void RunTests(IEnumerable<VsTestCase> vsTestCasesToRun, IRunContext runContext, IFrameworkHandle frameworkHandle)
{
try
{
Stopwatch stopwatch = Stopwatch.StartNew();
InitOrRefreshTestEnvironment(runContext.RunSettings, frameworkHandle);
var vsTestCasesToRunAsArray = vsTestCasesToRun as VsTestCase[] ?? vsTestCasesToRun.ToArray();
ISet<string> allTraitNames = GetAllTraitNames(vsTestCasesToRunAsArray.Select(DataConversionExtensions.ToTestCase));
var filter = new TestCaseFilter(runContext, allTraitNames, _testEnvironment);
vsTestCasesToRun = filter.Filter(vsTestCasesToRunAsArray);
IEnumerable<TestCase> allTestCasesInExecutables =
GetAllTestCasesInExecutables(vsTestCasesToRun.Select(tc => tc.Source).Distinct());
ICollection<TestCase> testCasesToRun = vsTestCasesToRun.Select(DataConversionExtensions.ToTestCase).ToArray();
DoRunTests(allTestCasesInExecutables, testCasesToRun, runContext, frameworkHandle, stopwatch);
}
catch (Exception e)
{
_testEnvironment.LogError("Exception while running tests: " + e);
}
}