[TestFixture]
public class TargetTest {
+ static bool isMono = Type.GetType ("Mono.Runtime", false) != null;
Engine engine;
Project project;
bool Build (string projectXml, ILogger logger)
{
- if (Environment.OSVersion.Platform == PlatformID.Win32NT) {
+ if (!isMono) {
var reader = new StringReader (projectXml);
var xml = XmlReader.Create (reader);
- return BuildOnWindows (xml, logger);
+ return BuildOnDotNet (xml, logger);
} else {
- return BuildOnLinux (projectXml, logger);
+ return BuildOnMono (projectXml, logger);
}
}
- bool BuildOnWindows (XmlReader reader, ILogger logger)
+ bool BuildOnDotNet (XmlReader reader, ILogger logger)
{
var type = Type.GetType ("Microsoft.Build.Evaluation.ProjectCollection, Microsoft.Build, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a");
return ret;
}
- bool BuildOnLinux (string projectXml, ILogger logger)
+ bool BuildOnMono (string projectXml, ILogger logger)
{
var engine = new Engine (Consts.BinPath);
var project = engine.CreateNewProject ();
</Project>", "D");
}
+ [Test]
+ public void ItemGroupInsideTarget_UpdateMetadata ()
+ {
+ ItemGroupInsideTarget (
+ @"<Project ToolsVersion=""4.0"" xmlns=""http://schemas.microsoft.com/developer/msbuild/2003"">
+ <ItemGroup>
+ <ProjectReference Include='xyz'/>
+ </ItemGroup>
+
+ <Target Name='Main' DependsOnTargets='CreateBar'>
+ <Message Text='Before: $(Bar)'/>
+ <ItemGroup>
+ <ProjectReference>
+ <AdditionalProperties>A=b</AdditionalProperties>
+ </ProjectReference>
+ </ItemGroup>
+ <Message Text='After: $(Bar)'/>
+ </Target>
+
+ <Target Name='CreateBar'>
+ <PropertyGroup>
+ <Bar>Bar01</Bar>
+ </PropertyGroup>
+ </Target>
+ </Project>", 2, "Before: Bar01", "After: Bar01");
+ }
+
[Test]
public void ItemGroupInsideTarget_Batching ()
{
Assert.AreEqual (0, logger.NormalMessageCount, "Unexpected extra messages found");
}
-#if NET_4_0
[Test]
[Category ("NotDotNet")]
public void TestBeforeAndAfterTargets ()
//warnings for referencing unknown targets: NonExistant and Foo
Assert.AreEqual (2, logger.WarningsCount, "Expected warnings not raised");
}
-#endif
[Test]
public void TestTargetReturns ()