示例#1
0
        public void CreateMutants()
        {
            var counter = ProgressCounter.Invoking(RaiseMinorStatusUpdate, OperationsState.Mutating);

            var mutantModules = _mutantsContainer.InitMutantsForOperators(counter);

            _currentSession.MutantsGrouped = mutantModules;

            _sessionEventsSubject.OnNext(new MutationFinishedEventArgs(OperationsState.MutationFinished)
            {
                MutantsGrouped = _currentSession.MutantsGrouped,
            });
        }
        public async Task SaveResults(string path = null)
        {
            if (path == null)
            {
                if (string.IsNullOrEmpty(_viewModel.TargetPath) ||
                    !Path.IsPathRooted(_viewModel.TargetPath))
                {
                    _svc.Logging.ShowError("Invalid path");
                    return;
                }
                path = _viewModel.TargetPath;
            }

            _viewModel.SavingInProgress = true;
            _cts = new CancellationTokenSource();
            var progress = ProgressCounter.Invoking(i => _viewModel.Progress = i);

            XDocument document = await _generator.GenerateResults(_currentSession,
                                                                  _viewModel.IncludeDetailedTestResults,
                                                                  _viewModel.IncludeCodeDifferenceListings,
                                                                  progress,
                                                                  _cts.Token);

            try
            {
                using (var writer = _fs.File.CreateText(path))
                {
                    writer.Write(document.ToString());
                }
                _svc.Settings["MutationResultsFilePath"] = path;

                _viewModel.Close();


                var p = new Process();

                p.StartInfo.FileName = path;
                p.Start();
            }
            catch (IOException)
            {
                _svc.Logging.ShowError("Cannot write file: " + path);
            }
        }