コード例 #1
0
        public override IEnumerable <object[]> GetData(MethodInfo methodUnderTest, Type[] parameterTypes)
        {
            var makefiles = Directory.GetFiles(Directory.GetCurrentDirectory(), "test-*.shade").Select(Path.GetFileName);
            var settings  = new SakeSettings {
                Output = Console.Out
            };
            var loader = new DefaultLoader(new DefaultLog(settings), settings);

            foreach (var makefile in makefiles)
            {
                IBuilder builder;
                try
                {
                    builder = loader.Load(new Options {
                        Makefile = makefile
                    });
                }
                catch (Exception)
                {
                    builder = null;
                }

                if (builder == null)
                {
                    yield return(new object[] { makefile, null });
                }
                else
                {
                    foreach (var target in builder.Targets.Values.Where(target => target.Name.StartsWith("test-")))
                    {
                        yield return(new object[] { makefile, target.Name });
                    }
                }
            }
        }
コード例 #2
0
 public DefaultLoaderTests()
 {
     _settings = new SakeSettings {
         Output = new StringWriter()
     };
     _loader = new DefaultLoader(new DefaultLog(_settings), _settings);
 }
コード例 #3
0
ファイル: MakefileTests.cs プロジェクト: catwarrior/sake
        public void MakefileTarget(string makefile, string target)
        {
            var settings = new SakeSettings {
                Output = new RemoveEscapes(Console.Out)
            };
            var loader = new DefaultLoader(new DefaultLog(settings), settings);
            var engine = new SakeEngine(settings, loader, new DefaultRunner());

            engine.Execute(new Options {
                Makefile = makefile, Targets = new[] { target }
            });
        }
コード例 #4
0
ファイル: Program.cs プロジェクト: catwarrior/sake
        static void Main(string[] args)
        {
            var settings = new SakeSettings
            {
                Output = new ConsoleWriter(),
            };

            using (var container = CreateContainer(settings))
            {
                var engine = container.Resolve <SakeEngine>();
                try
                {
                    engine.Execute(args);
                }
                catch (Exception ex)
                {
                    container.Resolve <ILog>().Error(ex.Message);
                    container.Resolve <ILog>().Error("Stack trace: " + Environment.NewLine + ex.StackTrace);
                    Environment.ExitCode = 1;
                }
            }
        }
コード例 #5
0
ファイル: DefaultLoaderTests.cs プロジェクト: dragan/sake
 public DefaultLoaderTests()
 {
     _settings = new SakeSettings { Output = new StringWriter() };
     _loader = new DefaultLoader(new DefaultLog(_settings));
 }