コード例 #1
0
        public void TestRunTargetTwice()
        {
            string documentString = @"<Project xmlns=""http://schemas.microsoft.com/developer/msbuild/2003"">
			<Target Name=""Foo"">
				<Message Text=""Foo ran""/>
			</Target>
			<Target Name=""Main"">
				<MSBuild Projects=""$(MSBuildProjectFile)"" Targets=""Foo;Foo"" />
			</Target>

		</Project>"        ;

            var filepath = Path.GetTempFileName();

            try {
                File.WriteAllText(filepath, documentString);

                var engine  = new Engine(Consts.BinPath);
                var project = engine.CreateNewProject();
                project.Load(filepath);

                var logger = new TestMessageLogger();
                engine.RegisterLogger(logger);

                var result = project.Build("Main");
                if (!result)
                {
                    logger.DumpMessages();
                    Assert.Fail("Build failed, see the logs");
                }

                Assert.AreEqual(1, logger.NormalMessageCount, "Expected number of messages");
                logger.CheckLoggedMessageHead("Foo ran", "A1");

                Assert.AreEqual(0, logger.NormalMessageCount, "Extra messages found");
                Assert.AreEqual(0, logger.WarningMessageCount, "Extra warning messages found");

                Assert.AreEqual(2, logger.TargetStarted, "TargetStarted count");
                Assert.AreEqual(2, logger.TargetFinished, "TargetFinished count");

                Assert.IsTrue(result);
            } finally {
                File.Delete(filepath);
            }
        }
コード例 #2
0
ファイル: TargetTest.cs プロジェクト: Skycweb/mono-skycweb
        public void TestTargetReturns()
        {
            engine = new Engine (Consts.BinPath);
            project = engine.CreateNewProject ();
            project.Load (Path.Combine ("Test", Path.Combine ("resources", "TestReturns.csproj")));

            var logger = new TestMessageLogger ();
            engine.RegisterLogger (logger);

            bool result = project.Build ("Main");
            if (!result) {
                logger.DumpMessages ();
                Assert.Fail ("Build failed");
            }

            logger.CheckLoggedMessageHead ("Result: Bar", "A1");

            Assert.AreEqual (0, logger.NormalMessageCount, "Unexpected extra messages found");
        }