Running Typemock Isolator based tests in TFS vNext build

Updated 22 Mar 2016 This task is available in the VSTS Marketplace) Typemock Isolator provides a way to ‘mock the un-mockable’, such as sealed private classes in .NET, so can be a invaluable tool in unit testing. To allow this mocking Isolator interception has to be started before any unit tests are run and stopped when completed. For a developer this is done automatically within the Visual Studio IDE, but on build systems you have to run something to do this as part of your build process. Typemock provide documentation and tools for common build systems such as MSBuild, Jenkins, Team City and TFS XAML builds. However, they don’t provide tools or documentation on getting it working with TFS vNext build, so I had to write my own vNext build Task to do the job, wrapping Tmockrunner.exe provided by Typemock which handles the starting and stopping of mocking whilst calling any EXE of your choice. ...

September 8, 2015 · 3 min · Richard Fennell

Voting for DDD North Sessions is now open

Voting for DDD North Sessions is now open - http://bit.ly/DDDNorth15Sessions Vote on what you would like to see at this community conference

September 7, 2015 · 1 min · Richard Fennell

WebDeploy, parameters.xml transforms and nLog settings

I have been trying to parameterise the SQL DB connection string used by nLog when it is defined in a web.config file of a web site being deployed via Release Management and WebDeploy i.e. I wanted to select and edit the bit highlighted of my web.config file <configuration> <nlog xmlns="[http://www.nlog-project.org/schemas/NLog.xsd"](http://www.nlog-project.org/schemas/NLog.xsd") xmlns:xsi="[http://www.w3.org/2001/XMLSchema-instance"](http://www.w3.org/2001/XMLSchema-instance")\> <targets async="true"> <target xsi:type="Database" name="SQL" dbProvider="System.Data.SqlClient" connectionString="Data Source=myserver;Database=mydb;Persist Security Info=True;Pooling=False" keepConnection="true" commandText="INSERT INTO \[Logs\](ID, TimeStamp, Message, Level, Logger, Details, Application, MachineName, Username) VALUES(newid(), getdate(), @message, @level, @logger, @exception, @application, @machineName, @username)"> <parameter layout="${message}" name="@message"></parameter> ……. The problem I had was that the xpath query I was using was not returning the nLog node because the nLog node has a namespace defined. This means we can’t just use a query in the form ...

September 1, 2015 · 1 min · Richard Fennell

An alternative to setting a build quality on a TFS vNext build

TFS vNext builds do not have a concept of build quality unlike the old XAML based builds. This is an issue for us as we used the changing of the build quality as signal to test a build, or to mark it as released to a client (this was all managed with my TFS Alerts DSL to make sure suitable emails and build retention were used). So how to get around this problem with vNext? ...

August 28, 2015 · 3 min · Richard Fennell

Cannot create an MSDeploy package for an Azure Web Job project as part of an automated build/

I like web deploy as a means to package up websites for deployment. I like the way I only need to add /p:DeployOnBuild=True;PublishProfile=Release as an MSBuild argument to get the package produced as part of an automated build. This opening up loads of deployment options I recently hit an issue packaging up a solution that contained an Azure WebSite and an Azure Web Job (to be hosted in the web site). It is easy to add the web job so that it is included in the Web Deploy package. Once this was done we could deploy from Visual Studio, or package to the local file system and see the web job EXE in the app_datajobs folder as expected. ...

August 21, 2015 · 2 min · Richard Fennell

Using Release Management vNext templates when you don’t want to use DSC scripts – A better script

A couple of months ago I wrote a post on using PowerShell scripts to deploy web sites in Release Management vNext templates as opposed to DSC. In that post I provided a script to help with the translation of Release Management configuration variables to entries in the [MSDELPOY].setparameters.xml file for web sites. The code I provided in that post required you to hard code the variables to translate. This quickly become a problem for maintenance. However, there is a simple solution. ...

August 21, 2015 · 2 min · Richard Fennell

Guest post at Microsoft - nUnit and Jasmine.JS unit tests in TFS/VSO vNext build

I have just had a guest post published on the Microsoft UK developers site nUnit and Jasmine.JS unit tests in TFS/VSO vNext build

August 19, 2015 · 1 min · Richard Fennell

DDDNorth 2015 submissions are open

DDDNorth is on again this year, back in it’s more northern base of the Sunderland University on the 24th of October You can submit your session proposal in here

August 19, 2015 · 1 min · Richard Fennell

TF30063 Errors accessing a TFS 2015 server via the C# API after upgrade from 2013

Background We upgraded our production TFS 2013.4 server to TFS 2015 RTM this week. As opposed to an in-place upgrade we chose to make a few change on the way; so whilst leaving our DBs on our SQL 2012 cluster We moved to a new VM for our AT (to upgrade from Windows 2008R2 to 2012R2) Split the SSRS instance off the AT to a separate VM with a new SSAS server (again to move to 2012R2 and to ease management, getting all the reporting bits in one place) But we do not touch ...

August 13, 2015 · 2 min · Richard Fennell

Running Microsoft Test Manager Test Suites as part of a vNext Release pipeline - Part 2

In my last post I discussed how you could wire TCM tests into a Release Management vNext pipeline. The problem with the script I provided, as I noted, was that the deployment was triggered synchronously by the build i.e. the build/release process was: TFS Build Gets the source Compiled the code Run the unit tests Trigger the RM pipeline Wait while the RM pipeline completed RM then Deploys the code Runs the integration tests When RM completed the TFS build completes This process raised a couple of problems ...

August 11, 2015 · 5 min · Richard Fennell