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); } }
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"); }