public TestSessionContext Load(RunnerConfiguration configuration)
        {
            var testSessionContext = new TestSessionContext();

            var assemblyConfigurations = configuration.Assemblies.Where(x => x.Platform != "x86").ToList();

            ProgressChanged(0, assemblyConfigurations.Count);

            for (int i = 0; i < assemblyConfigurations.Count; i++)
            {
                var assemblyConfiguration = assemblyConfigurations[i];
                var assemblyTestCases = Load(assemblyConfiguration);

                testSessionContext.AddTestCases(assemblyTestCases);

                ProgressChanged(i + 1, assemblyConfigurations.Count);
            }

            return testSessionContext;
        }
        public async Task InitializeTestList()
        {
            if (string.IsNullOrWhiteSpace(ConfigFilePath))
            {
                return;
            }

            foreach (var testGroupViewModel in TestGroups)
            {
                testGroupViewModel.PropertyChanged -= OnGroupViewModelPropertyChanged;
            }

            TestGroups.Clear();
            
            if (_testSessionContext != null)
                await _testSessionContext.DisposeAsync();

            _testSessionContext = await _testSessionContextLoader.Load(ConfigFilePath);

            var testCaseGroup = _testSessionContext.TestCases.GroupBy(x => x.AssemblyName);

            foreach (var group in testCaseGroup)
            {
                var testCases = group.OrderBy(x => x.TestClassName).ThenBy(x => x.Name);
                var groupViewModel = new TestGroupViewModel(group.Key, testCases, this);

                TestGroups.Add(groupViewModel);

                groupViewModel.PropertyChanged += OnGroupViewModelPropertyChanged;
            }

            var testCategories = _testSessionContext.TestCases
                .SelectMany(x => x.Categories)
                .Distinct()
                .Select(x => new TestCategoryViewModel(x));

            TestCategories.ResetTo(testCategories);
            FirePropertyChanged(nameof(HasTestCategories));
        }