コード例 #1
0
ファイル: Keyword.cs プロジェクト: ihenehan/Behavior
        public Keyword(CriterionStep step, IXmlRpcClient proxy, BehaviorConfiguration config)
        {
            Name = step.Name;
            Config = config;
            Proxy = proxy;
            Parameters = new Dictionary<string, object>();

            var argCount = 0;

            foreach (object p in step.Parameters)
            {
                if (p.GetType().Equals(typeof(string)))
                    Parameters.Add("arg" + argCount, p as string);
                else
                    Parameters.Add("arg" + argCount, p);

                argCount++;
            }

            if (!int.TryParse(Config.GuiDelay, out guiDelay))
                guiDelay = 0;

            if (guiDelay < 0)
                guiDelay = 0;

            KeywordExists = ValidateKeywordName(Name);

            if(KeywordExists)
                ParametersAreCorrect = ValidateParameters(Name, Parameters);
        }
コード例 #2
0
ファイル: Behavior.cs プロジェクト: ihenehan/Behavior
        static void Main(string[] args)
        {
            ArgParser.Parse(Config, args);

            Kernel = new StandardKernel();

            Kernel.Load(AppDomain.CurrentDomain.GetAssemblies());

            var repo = Kernel.Get<IRepository>();

            var serial = Kernel.Get<ISerializer>();

            var testResult = Kernel.Get<TestRunResult>();

            if (File.Exists("Config.cfg"))
                Config = serial.ReadFile<BehaviorConfiguration>("Config.cfg");

            repo.DataPath = Config.DataPath;

            testResult.StartTime = DateTime.Now;

            repo.GetAllStories(Config).ForEach(f => testResult.StoryResults.Add(f.Run(Kernel.Get<IRestClient>())));

            testResult.EndTime = DateTime.Now;

            (new TestRunReport(testResult.SetResult())).ToFile(Config.ResultFile);
        }
コード例 #3
0
ファイル: Behavior.cs プロジェクト: ihenehan/Behavior
        static void Main(string[] args)
        {
            Parser.Parse(Config, args);

            Kernel = new StandardKernel();

            Kernel.Load(AppDomain.CurrentDomain.GetAssemblies());

            var repo = Kernel.Get<IRepository>();

            var serial = Kernel.Get<ISerializer>();

            var testResult = Kernel.Get<TestRunResult>();

            if (File.Exists("Config.cfg"))
                Config = serial.ReadFile<BehaviorConfiguration>("Config.cfg");

            repo.DataPath = Config.DataPath;

            var stories = repo.GetItemsWithTaggedChildren(repo.GetAll<Story>(), Config.IncludeTags, Config.ExcludeTags).OrderBy(s => s.Name).ToList();

            stories.ForEach(s => testResult.StoryResults.Add((s as Story).Run(Kernel.Get<ILauncherClient>())));

            testResult.SetResult();

            var testReport = new TestRunReport(testResult);

            testReport.ToFile("TestResults.html");
        }
コード例 #4
0
        public void AddTestVariables(BehaviorConfiguration config, string[] args)
        {
            var vars = args.ToList().Where(a => a.StartsWith("${")).ToList();

            config.TestVariables = new Dictionary<string, string>();

            vars.ForEach(v => config.TestVariables.Add(v.Split('=')[0], v.Split('=')[1]));
        }
コード例 #5
0
        public void Parse(BehaviorConfiguration config, params string[] args)
        {
            map = new ArgDictionary<BehaviorConfiguration>(config)
                          {
                              {"resultfile", (b,a) => b.ResultFile = Split(a)},
                              {"include", (b,a) => b.IncludeTags = Split(a).Split(",".ToCharArray()).ToList()},
                              {"exclude", (b,a) => b.ExcludeTags = Split(a).Split(",".ToCharArray()).ToList()},
                              {"datapath", (b,a) => b.DataPath = Split(a)},
                              {"host", (b,a) => b.Host = Split(a)},
                              {"fixture", (b,a) => b.FixtureType = Split(a)},
                              {"context", (b,a) => b.FixtureContext = Split(a)},
                              {"delay", (b,a) => b.GuiDelay = Split(a)},
                              {"islocal", (b,a) => b.IsLocal = SplitBool(a)}
                          };

            map.ParseAndExecute(args);

            AddTestVariables(config, args);
        }
コード例 #6
0
ファイル: Keyword.cs プロジェクト: ihenehan/Behavior
        public Keyword(Interaction interaction, IRemoteClient proxy, BehaviorConfiguration config)
        {
            Name = interaction.Name;
            Config = config;
            Proxy = proxy;
            Parameters = new Dictionary<string, string>();

            interaction.Children.ForEach(d => Parameters.Add((d as DataItem).Name, (d as DataItem).Data));

            if (!int.TryParse(Config.GuiDelay, out guiDelay))
                guiDelay = 0;

            if (guiDelay < 0)
                guiDelay = 0;

            KeywordExists = ValidateKeywordName(Name);

            if(KeywordExists)
                ParametersAreCorrect = ValidateParameters(Name, Parameters);
        }
コード例 #7
0
            protected void Given(params string[] args)
            {
                config = new BehaviorConfiguration();

                parser = new BehaviorArgParser();

                parser.Parse(config, args);
            }
コード例 #8
0
        public void Setup()
        {
            config = new BehaviorConfiguration();

            config.TestVariables.Add("${foo}", "bar");
        }
コード例 #9
0
ファイル: ItemRepository.cs プロジェクト: ihenehan/Behavior
 public List<Story> GetAllStories(BehaviorConfiguration config)
 {
     return itemSerializer.GetAllStories(config);
 }
コード例 #10
0
ファイル: LocalServer.cs プロジェクト: ihenehan/Behavior
        public LocalServer(BehaviorConfiguration config)
        {
            Config = config;

            RemoteServer = ResolveFixture(Config.LocalFixtureAssembly, Config.LocalFixtureName);
        }