Exemplo n.º 1
0
        public static KarmaSettings Read(string path, IKarmaLogger logger)
        {
            logger.Info("Reading settings from {0}", path);
            KarmaSettings settings = null;

            if (PathUtils.PathHasFileName(path, Globals.SettingsFilename) && File.Exists(path))
            {
                try
                {
                    settings = JsonConvert.DeserializeObject <KarmaSettings>(File.ReadAllText(path, Encoding.UTF8));
                    settings.SettingsFile = path;
                }
                catch (Exception ex)
                {
                    logger.Error(ex.Message);
                }
            }
            else
            {
                settings = new KarmaSettings
                {
                    KarmaConfigFile = Path.GetFileName(path)
                };
            }

            settings.Directory = Path.GetDirectoryName(path);
            return(settings);
        }
Exemplo n.º 2
0
        public IEnumerable <ConsolidatedTestResult> ConsolidateResults(IKarmaLogger logger)
        {
            if (Files == null)
            {
                return(Enumerable.Empty <ConsolidatedTestResult>());
            }

            var tests = Files.AllTests.Select(t => new ConsolidatedTestResult(t)).ToList();

            if (Results != null)
            {
                foreach (var browser in Results.Browsers)
                {
                    foreach (var result in browser.AllTestResults)
                    {
                        var test = tests.FirstOrDefault(t => t.Test.DisplayName == result.DisplayName);
                        if (test != null)
                        {
                            test.Results.Add(result);
                        }
                    }
                }
            }

            return(tests);
        }
Exemplo n.º 3
0
 public void AddLogger(IKarmaLogger logger)
 {
     if (logger != null)
     {
         _loggers.Add(logger);
     }
 }
Exemplo n.º 4
0
 public override void AddLogger(IKarmaLogger logger)
 {
     if (logger != null)
     {
         _loggers.Add(logger);
     }
 }
Exemplo n.º 5
0
        public KarmaTestContainerDiscoverer(
            [Import(typeof(SVsServiceProvider))] IServiceProvider serviceProvider,
            ILogger logger,
            ISolutionListener solutionListener,
            ITestFilesUpdateWatcher testFilesUpdateWatcher,
            ITestFileAddRemoveListener testFilesAddRemoveListener)
        {
            Logger = KarmaLogger.Create(logger: logger);

            _serviceProvider  = serviceProvider;
            _solutionListener = solutionListener;

            _testFilesUpdateWatcher          = testFilesUpdateWatcher;
            _testFilesUpdateWatcher.Changed += OnProjectItemChanged;

            _testFilesAddRemoveListener          = testFilesAddRemoveListener;
            _testFilesAddRemoveListener.Changed += OnProjectItemChanged;
            _testFilesAddRemoveListener.StartListening();

            _solutionListener.SolutionUnloaded += SolutionListenerOnSolutionUnloaded;
            _solutionListener.ProjectChanged   += OnSolutionProjectChanged;
            _solutionListener.StartListening();

            Logger.Info("KarmaTestContainerDiscoverer created");
        }
Exemplo n.º 6
0
        public IEnumerable<ConsolidatedTestResult> ConsolidateResults(IKarmaLogger logger)
        {
            if (Files == null)
            {
                return Enumerable.Empty<ConsolidatedTestResult>();
            }

            var tests = Files.AllTests.Select(t => new ConsolidatedTestResult(t)).ToList();

            if (Results != null)
            {
                foreach (var browser in Results.Browsers)
                {
                    foreach (var result in browser.AllTestResults)
                    {
                        var test = tests.FirstOrDefault(t => t.Test.DisplayName == result.DisplayName);
                        if (test != null)
                        {
                            test.Results.Add(result);
                        }
                    }
                }
            }

            return tests;
        }
Exemplo n.º 7
0
 public KarmaCommand(string command, string source, IKarmaLogger logger)
 {
     Command   = command;
     Settings  = KarmaSettings.Read(source, logger);
     Directory = IO.Path.GetDirectoryName(IO.Path.GetFullPath(source));
     Logger    = logger;
     if (Settings.LogToFile)
     {
         Logger.AddLogger(Settings.LogFilePath);
     }
 }
Exemplo n.º 8
0
 public IEnumerable <TestCase> GetTests(IEnumerable <string> sources, IKarmaLogger logger)
 {
     try
     {
         return(sources.SelectMany(s => GetTests(s, logger)).ToList());
     }
     catch (Exception ex)
     {
         logger.Error(ex.Message);
         return(Enumerable.Empty <TestCase>());
     }
 }
Exemplo n.º 9
0
 public Karma Discover(string source, IKarmaLogger logger)
 {
     if (_karmaDiscoverCommand != null)
     {
         throw new Exception("Test discovery already running");
     }
     _karmaDiscoverCommand = new KarmaDiscoverCommand(source, logger);
     try
     {
         return(_karmaDiscoverCommand.Run());
     }
     finally
     {
         _karmaDiscoverCommand = null;
     }
 }
Exemplo n.º 10
0
 private KarmaTestResults.Karma Run(string source, VsConfig.Config vsConfig, IKarmaLogger logger)
 {
     if (_karmaRunCommand != null)
     {
         throw new Exception("Karma is already running");
     }
     _karmaRunCommand = new KarmaRunCommand(source, vsConfig, logger);
     try
     {
         return(_karmaRunCommand.Run());
     }
     finally
     {
         _karmaRunCommand = null;
     }
 }
Exemplo n.º 11
0
 public virtual void AddLogger(IKarmaLogger logger)
 {
     throw new NotImplementedException();
 }
Exemplo n.º 12
0
 public KarmaDiscoverCommand(string source, IKarmaLogger logger)
     : base("discover", source, logger)
 {
 }
Exemplo n.º 13
0
 public KarmaRunCommand(string source, VsConfig.Config vsConfig, IKarmaLogger logger)
     : base("run", source, logger)
 {
     _vsConfig = vsConfig;
 }
Exemplo n.º 14
0
        public IEnumerable <TestCase> GetTests(string source, IKarmaLogger logger)
        {
            var karma = Discover(source, logger);

            return(karma == null?Enumerable.Empty <TestCase>() : karma.GetTestCases(source));
        }
Exemplo n.º 15
0
        private void RunTests(string source, IEnumerable <TestCase> tests, KarmaTestResults.Karma karma, IFrameworkHandle frameworkHandle, IKarmaLogger logger)
        {
            var vsConfig = CreateVsConfig(tests, karma);
            var runKarma = Run(source, vsConfig, logger);

            if (runKarma == null)
            {
                logger.Error("No karma");
                return;
            }

            var consolidatedResults = runKarma.ConsolidateResults(logger);
            var testNames           = tests.Select(t => t.DisplayName).Union(consolidatedResults.Select(r => r.Test.DisplayName));

            var results = from displayName in testNames
                          join test in tests
                          on displayName equals test.DisplayName
                          into test_
                          from test in test_.DefaultIfEmpty()
                          join result in consolidatedResults
                          on displayName equals result.Test.DisplayName
                          into result_
                          from result in result_.DefaultIfEmpty()
                          select new TestCaseResult(test, result, source);

            foreach (var result in results)
            {
                frameworkHandle.RecordStart(result.Test);
                foreach (var res in result.Result.Results)
                {
                    frameworkHandle.RecordResult(new TestResult(result.Test)
                    {
                        ComputerName = Environment.MachineName,
                        DisplayName  = res.Browser.Name,
                        Outcome      = res.Outcome,
                        Duration     = res.Time,
                        ErrorMessage = res.Message
                    });
                }
                frameworkHandle.RecordEnd(result.Test, result.Result.Outcome);
            }
        }
Exemplo n.º 16
0
 static Item()
 {
     Logger = KarmaLogger.Create();
 }