Missing files in MSDeploy package

Problem If you create an MSDeploy package for a SharePoint or O365 AddIn (a.k.a App) in a team build the package does not include all files (like i.e. language resources). Reason This seems to be a bug in MSDeploy. If you build the app only with /p:Ispackaging=True everything works fine. You get a web package inside the app.publish folder that contains all files. If you work with multiple Publishing Profiles and specify an explicit profile strange things happen. /p:DeployOnBuild=true /p:PublishProfile=NameOfPackageProfile You still get the package but if you look inside the package the folders are missing. Solution If you can … Continue reading Missing files in MSDeploy package

Release management trial license has expired

The license of the Release Management Server at one of my client expired multiple times. This time I was really sure that I had installed the correct version from MSDN. When I looked around I found the answer on msdn. As it turned out the problem is not, that the license had expired. The user under which the application pool is running has to load a user profile to read the license. This can be configured in iis. Continue reading Release management trial license has expired

Bugs not on the backlog after Update

If you Update yout TFS on premise from 2013 to 2015 or from 2015 to 2015 Update 1 you might experience that your bugs are no longer displayed in your backlog. This is can now be configured for individual teams. Open the settings for your project. Click on the team that you want to configure. Got to settings and configure how the bugs are handled in the backlog of the team. The bugs then appear again on your backlog. What you shouldn’t do is modify the workitem categories like some posts suggest. If you do this you will lose the capability … Continue reading Bugs not on the backlog after Update

Use Pester to author your PowerShell scripts

Pester is a great module for testing your PowerShell scripts and modules. It has great mocking support, a test drive for setting up isolated files and supports a lot of assertions. Since the importance of PowerShell growths, testing your scripts is a must.

This is part 2 of the series “Develop next level PowerShell with Visual Studio and Pester”. It assumes that you have a Visual Studio solution with a basic Pester Test in GitHub.

Post Content
Part 1: Develop next level PowerShell with Visual Studio and Pester In this post I focus on creating the project in Visual Studio and interacting with a source control system like git.
Part 2: Use Pester to author your PowerShell scripts using TDD/BDD This post focuses on writing PowerShell scripts or modules using Pester as a TDD/BDD framework.
Part 3: Run your Pester tests in a VSTS build In this post I show you how you can run you tests in a continuous integration build and display the build status with a badge in your repository.

 

Pester basics

If you create a new test in Visual Studio, it looks like this:

Describe "PowerShellTest1" {
    Context "Exists" {
        It "Runs" {
        }
    }
}

As you can see you have three levels:

Describe: This is the name of the test displayed in test explorer. It is not ONE test in the test results. It’s more a container scope for many tests that executes as a unit.

Context: Like “Describe” the Context is a container for tests. You can mock functions or have test files in the scope of a context.

It: “It” is the actual test. You add an assertion here to test the state of your system. “It” is also a scope for mocking like context.

You can use these elements to structure your tests in a BDD style after the GivenWhenThen pattern.

$project = (Split-Path -Parent $MyInvocation.MyCommand.Path).Replace(".Tests", "")
$sut = (Split-Path -Leaf $MyInvocation.MyCommand.Path).Replace(".tests.", ".")
. "$project\$sut"

Describe "AnswerToUltimateQuestion" {
    Context "Given an enormous supercomputer named Deep Thought, when we ask the ultimate question about life, the universe, and everything" {
        It "should return 42" {
			       AnswerToUltimateQuestion | Should Be 42
		     }
    }
}

Continue reading “Use Pester to author your PowerShell scripts”

Set assembly and app version to a matching build name in TFS 2015 or VSO Build.VNext

One of the most common customizations in TFS XAML build templates was to automatically update the assembly version number. This can also be done in build vNext using a small power shell script. I also added the option to apply … Continue reading Set assembly and app version to a matching build name in TFS 2015 or VSO Build.VNext

Trigger a vNext Release from build in TFS 2013/2015 on premise

I always had a lot of problems triggering a release from a build (Vnext or Xaml) on premise if I work with agentless deployments. In the cloud this works like a charm – but on premise it never worked for me. I tried it with the blog post on msdn – but no success. Today I started to use Fiddler to monitor the api calls that the Release Management Client makes. (BTW: I know now, why the app is so slow if you have limited network bandwidth. The client is really chatty!). With Fiddler and the Invoke-RestMethod commandlet its quite … Continue reading Trigger a vNext Release from build in TFS 2013/2015 on premise

Visual Studio Release Management and PaaS

Can you deploy Platform as a Service (PaaS) components to Azure using Visual Studio Release Management? I get this question quite often lately. Short answer: yes you can. And how? Via a virtual machine. Yes – this is Infrastructure as a Service (IaaS) and not PaaS. Yes – this is not what you expected. Me neither. But it’s the only supported way right now. I hope this will change in future versions and that we get a “Azure PowerShell” like we have in Build.VNext. But right now this is the way to go. If you watch BREAKPOINT: Release Management and … Continue reading Visual Studio Release Management and PaaS