Whilst setting up a TFS 2012 Standard Lab Environment for an upcoming demo I hit a problem. Initially my environment had worked fine, I could deploy to my server VM in the environment without error. However, after a reboot of the TFS server (which has the build and test controllers on it) and the single server VM in the environment, the test agent on the VM could not connect to the test controller on the TFS SERVER. The VM’s event log showed
Unable to connect to the controller on 'tfsserver:6901'. The agent can connect to the controller but the controller cannot connect to the agent because of following reason: No connection could be made because the target machine actively refused it 127.0.0.1:6910. Make sure that the firewall on the test agent machine is not blocking the connection.
The key here was test controller was being told to call back to the test agent on 127.0.0.1 – which is obviously wrong being the loopback address.
So it seems the test agent was telling the test server the wrong IP address, not sure why it was resolving this address but I did find a workaround, on the test VM I edited
‘C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\QTAgentService.exe.config’
and added the BindTo line with the correct address for the controller to call back to the agent
// other bits …
<add key="BindTo" value="10.0.0.1"/>
Once I restarted the test agent it connected to the controller and I could run my builds.
For more details on this config file see http://msdn.microsoft.com/en-us/library/ff934571.aspx
Some great news today from Typemock, there is now a free basic edition of Typemock Isolator. The addresses a key historic problem with Isolator, that of its cost when you don’t need the advanced features of Isolator all the time.
Now if you need the cool advanced mocking features of Isolator, such as mocking sealed private classes, then the cost is not really a factor, you buy the product or don’t get the features. However what do you do if you just want to do just do ‘normal mocking’ in a project ? e.g. mock out an interfaces. Do you use Typemock as you already have it, or swap to a different mocking framework, only using Typemock when you have to use its advanced features?
This is a particular problem for consulting/bespoke development companies such as mine, we write code for clients that in the future they will have to maintain themselves, they are not that happy with us passing over code with a dependency on a licensed mocking framework unless it is essential to their project. This means in the past I have tended to use other mocking frameworks, usually FakeItEasy as its syntax is very similar to Typemock Isolator, unless I need its advanced features of Typemock such as in SharePoint projects.
However with this new basic edition release from Typemock this is no longer an issue. I can use Typemock in all my projects. If a client need to run the tests, as long as they are ‘normal mocking’ ones, all they need to do is install this new free version of Typemock and the project builds and the tests run. There is only a need to purchase a license if the advanced features of Typemock are required.
So longer do I need to swap mocking framework for only licensing reasons, hence reducing the friction I have had in the past changing mocking syntax.
After I installed Windows 8 RTM I still had two devices missing drivers. I have made a little progress
- Base System Device - was the Ricoh PCIe SDXC/MMC Host controller I used this Win 8 beta driver
- Unknown driver – seems to be the Lenovo Power Management devices. However the Win 8 Beta driver fails to install. I had to use the Windows 7 driver, installed OK and seems to show the right information in the tool tray, but in Device Manager it still says the unknown driver.
I guess I really need to wait until Lenovo ship their release drivers