Ejemplo n.º 1
0
        public void Execute_NoProjectFile_ShouldLookupProjectFileInWorkDirectory()
        {
            var workDirectory = new DirectoryStub("Src")
            {
                new DirectoryStub("DotNet")
                {
                    new DirectoryStub("Build"),
                    new FileStub("Rosalia.sln")
                },
                new DirectoryStub("Artifacts"),
                new DirectoryStub("Scripts")
            };

            var task = new MsBuildTask
            {
                ToolPath = "myMsBuild"
            };

            task.AssertCommand(
                workDirectory["DotNet"]["Build"],
                (msBuildPath, msBuildArguments) =>
                {
                    Assert.That(msBuildArguments.Trim(), Is.EqualTo("Src\\DotNet\\Rosalia.sln"));
                });
        }
Ejemplo n.º 2
0
        public void PopulateFromConfiguration()
        {
            const string xml = @"<msbuild>
	<executable>C:\WINDOWS\Microsoft.NET\Framework\v2.0.50215\MSBuild.exe</executable>
	<workingDirectory>C:\dev\ccnet</workingDirectory>
	<projectFile>CCNet.sln</projectFile>
	<buildArgs>/p:Configuration=Debug /v:diag</buildArgs>
	<targets>Build;Test</targets>
	<timeout>15</timeout>
	<logger>Kobush.Build.Logging.XmlLogger,Kobush.MSBuild.dll</logger>
    <loggerParameters>
        <loggerParameter>buildresult.xml</loggerParameter>
        <loggerParameter>someField=true</loggerParameter>
    </loggerParameters>
    <priority>BelowNormal</priority>
</msbuild>";

            task = (MsBuildTask)NetReflector.Read(xml);
            Assert.AreEqual(@"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50215\MSBuild.exe", task.Executable);
            Assert.AreEqual(@"C:\dev\ccnet", task.WorkingDirectory);
            Assert.AreEqual("CCNet.sln", task.ProjectFile);
            Assert.AreEqual("Build;Test", task.Targets);
            Assert.AreEqual("/p:Configuration=Debug /v:diag", task.BuildArgs);
            Assert.AreEqual(15, task.Timeout);
            Assert.AreEqual("Kobush.Build.Logging.XmlLogger,Kobush.MSBuild.dll", task.Logger);
            Assert.AreEqual(2, task.LoggerParameters.Length);
            Assert.AreEqual("buildresult.xml", task.LoggerParameters[0]);
            Assert.AreEqual("someField=true", task.LoggerParameters[1]);
            Assert.AreEqual(ProcessPriorityClass.BelowNormal, task.Priority);
        }
Ejemplo n.º 3
0
 public void PopulateFromMinimalConfiguration()
 {
     task = (MsBuildTask)NetReflector.Read("<msbuild />");
     Assert.AreEqual(defaultExecutable, task.Executable);
     Assert.AreEqual(MsBuildTask.DefaultTimeout, task.Timeout);
     Assert.AreEqual(null, task.Logger);
 }
        protected override async Task <MsBuildTask> AssignUpsertedReferences(MsBuildTask record)
        {
            record.Element = await _strings.UpsertAsync(record.Element);

            record.ElementId = record.Element?.AsciiStringReferenceId ?? record.ElementId;
            record.MsBuildTaskAttributeList = await _attributes.UpsertAsync(record.MsBuildTaskAttributeList);

            record.MsBuildTaskAttributeListId = record.MsBuildTaskAttributeList?.MsBuildTaskAttributeListId ?? record.MsBuildTaskAttributeListId;
            return(record);
        }
        public void ApplyTo()
        {
            MsBuildTask                 testTask   = new MsBuildTask();
            DirectDynamicValue          value      = new DirectDynamicValue("newDir", "workingDirectory");
            Dictionary <string, string> parameters = new Dictionary <string, string>();

            parameters.Add("newDir", "a location");
            value.ApplyTo(testTask, parameters, null);
            Assert.AreEqual("a location", testTask.WorkingDirectory, "Value has not been correctly set");
        }
        public void ApplyTo()
        {
            MsBuildTask             testTask = new MsBuildTask();
            ReplacementDynamicValue value    = new ReplacementDynamicValue("{0}\\Happy - {1}", "workingDirectory",
                                                                           new NameValuePair("newDir", null),
                                                                           new NameValuePair("oldDir", "default"));
            Dictionary <string, string> parameters = new Dictionary <string, string>();

            parameters.Add("newDir", "a location");
            value.ApplyTo(testTask, parameters, null);
            Assert.AreEqual("a location\\Happy - default", testTask.WorkingDirectory, "Value has not been correctly set");
        }
Ejemplo n.º 7
0
        public void Execute_HasProjectFile_ShouldGenerateCommandLine()
        {
            var task = new MsBuildTask
            {
                ToolPath = "myMsBuild",
                ProjectFile = new DefaultFile("projectFile")
            };

            task.AssertCommand((msBuildPath, msBuildArguments) =>
            {
                Assert.That(msBuildArguments.Trim(), Is.EqualTo("projectFile"));
            });
        }
Ejemplo n.º 8
0
    public void TestDynamic()
    {
        dynamic d = new ExpandoObject();
        d.DynProp = "Hello Dynamic!\n";
        Console.WriteLine(d.DynProp);

        dynamic msb = new MsBuildTask("dummy.sln");
        msb.Targets.Add("Rebuild");
        msb.Properties.Configuration = "Release";
        msb.Properties.WarningLevel = 0;
        msb.Properties.OutPUtPaTh = @"c:\build";
        // msb.Build();

        Console.WriteLine(msb);

        Console.WriteLine(msb.Properties.outputPath);
    }
Ejemplo n.º 9
0
        public void PopulateFromConfigurationBogusLoggerParameters()
        {
            const string xml = @"<msbuild>
	<executable>C:\WINDOWS\Microsoft.NET\Framework\v2.0.50215\MSBuild.exe</executable>
	<workingDirectory>C:\dev\ccnet</workingDirectory>
	<projectFile>CCNet.sln</projectFile>
	<buildArgs>/p:Configuration=Debug /v:diag</buildArgs>
	<targets>Build;Test</targets>
	<timeout>15</timeout>
	<logger>Kobush.Build.Logging.XmlLogger,Kobush.MSBuild.dll;buildresult.xml</logger>
    <priority>BelowNormal</priority>
</msbuild>";

            Assert.That(delegate { task = (MsBuildTask)NetReflector.Read(xml); },
                        Throws.TypeOf <NetReflectorException>());
            ;
        }
Ejemplo n.º 10
0
    public void Build()
    {
        var asmInfo = new AssemblyInfoTask(AsmInfoDir);
        asmInfo.SetBuildNumber(shake.CommandLine.Properties.BuildNumber ?? 0);
        asmInfo.Save();

        AsmVer = asmInfo.AssemblyVersion;
        Console.WriteLine("Building {0} ...", AsmVer);

        dynamic msb = new MsBuildTask(Solution);
        msb.Properties.OutputPath = BuildDir;
        msb.Properties.Configuration = shake.CommandLine.Properties.Configuration;
        msb.Properties.WarningLevel = 0;
        msb.Properties.DebugType = "none";
        msb.Targets.Add("Rebuild");
        msb.Build();
    }
Ejemplo n.º 11
0
        protected void SetUp()
        {
            var shadowCopier = mocks.Create <IShadowCopier>().Object;

            Mock.Get(shadowCopier).Setup(_shadowCopier => _shadowCopier.RetrieveFilePath(defaultLogger)).Returns(defaultLogger);

            var executionEnvironment = mocks.Create <IExecutionEnvironment>().Object;

            Mock.Get(executionEnvironment).SetupGet(_executionEnvironment => _executionEnvironment.IsRunningOnWindows).Returns(true);
            Mock.Get(executionEnvironment).SetupGet(_executionEnvironment => _executionEnvironment.RuntimeDirectory).Returns(RuntimeEnvironment.GetRuntimeDirectory());

            CreateProcessExecutorMock(Path.Combine(RuntimeEnvironment.GetRuntimeDirectory(), "MSBuild.exe"));
            task = new MsBuildTask((ProcessExecutor)mockProcessExecutor.Object, executionEnvironment, shadowCopier);

            result                   = IntegrationResult();
            result.Label             = "1.0";
            result.ArtifactDirectory = DefaultWorkingDirectory;

            logfile = Path.Combine(result.ArtifactDirectory, MsBuildTask.LogFilename);
            TempFileUtil.DeleteTempFile(logfile);
        }
Ejemplo n.º 12
0
        protected void SetUp()
        {
            var shadowCopier = mocks.DynamicMock <IShadowCopier>();

            SetupResult.For(shadowCopier.RetrieveFilePath(defaultLogger)).Return(defaultLogger);

            var executionEnvironment = mocks.DynamicMock <IExecutionEnvironment>();

            SetupResult.For(executionEnvironment.IsRunningOnWindows).Return(true);
            SetupResult.For(executionEnvironment.RuntimeDirectory).Return(RuntimeEnvironment.GetRuntimeDirectory());

            mocks.ReplayAll();


            CreateProcessExecutorMock(Path.Combine(RuntimeEnvironment.GetRuntimeDirectory(), "MSBuild.exe"));
            task = new MsBuildTask((ProcessExecutor)mockProcessExecutor.MockInstance, executionEnvironment, shadowCopier);

            result                   = IntegrationResult();
            result.Label             = "1.0";
            result.ArtifactDirectory = DefaultWorkingDirectory;
            logfile                  = Path.Combine(result.ArtifactDirectory, MsBuildTask.LogFilename);
            TempFileUtil.DeleteTempFile(logfile);
        }
Ejemplo n.º 13
0
        public void Execute_NoProjectFileAndNoSolutionInWorkDirectory_ShouldLeaveProjectFileBlank()
        {
            var workDirectory = new DirectoryStub("Src")
            {
                new DirectoryStub("DotNet")
                {
                    new DirectoryStub("Build"),
                },
                new DirectoryStub("Artifacts"),
                new DirectoryStub("Scripts")
            };

            var task = new MsBuildTask
            {
                ToolPath = "myMsBuild"
            };

            task.AssertCommand(
                workDirectory["DotNet"]["Build"],
                (msBuildPath, msBuildArguments) =>
                {
                    Assert.That(msBuildArguments.Trim(), Is.Empty);
                });
        }
Ejemplo n.º 14
0
 public void BuildArgs_ShouldHandleFileType()
 {
     var s = new MsBuildTask().ProjectOrSolutionFilePath(new File(_projectOrSolutionFilePath));
     s.AddSetFieldsToArgumentBuilder();
     Assert.That(s._argumentBuilder.Build(), Is.EqualTo(_projectOrSolutionFilePath));
 }
Ejemplo n.º 15
0
 public void Setup()
 {
     _projectOrSolutionFilePath = "c:\\temp.sln";
     _mockExecutor = MockRepository.GenerateStub<IActionExcecutor>();
     _subject = new MsBuildTask(_mockExecutor).ProjectOrSolutionFilePath(_projectOrSolutionFilePath);
 }
        protected override IEnumerable <object> EnumerateReferences(MsBuildTask record)
        {
            yield return(record.Element);

            yield return(record.MsBuildTaskAttributeList);
        }
Ejemplo n.º 17
0
        public void Execute_ToolPathPrivided_ShouldUseToolPath()
        {
            var task = new MsBuildTask
            {
                ToolPath = "myMsBuild",
                ProjectFile = new DefaultFile("projectFile")
            };

            task.AssertCommand(
                (msBuildPath, msBuildArguments) =>
                {
                    Assert.That(msBuildPath, Is.EqualTo("myMsBuild"));
                });
        }
 protected override Expression <Func <MsBuildTask, bool> > FindExisting(MsBuildTask record)
 => existing
 => existing.ElementId == record.ElementId &&
 existing.MsBuildTaskAttributeListId == record.MsBuildTaskAttributeListId;
Ejemplo n.º 19
0
 static void CheckAppSettings()
 {
     TfsTask.CheckExePath();
     MsBuildTask.CheckExePath();
     UnitTestRunner.CheckExePath();
 }