Archives
-
Your Place in the Cosmos
To claim your place in the LinkCosmos, all you need do it submit this simple form. All I'm asking is for permission to link to you (as per the privacy policy). I'm surprised how few of the people who left URLs in the original survey have opted-in.
-
TestDriven.NET Link Cosmos
If you filled in the TestDriven.NET survey in the last couple of days, you will have seen a 'Show' option on the 'Weblog/Home Page' question. If you selected 'Show', then your link may appear on the TestDriven.NET website. Today I'm opening a new section on the site called the "LinkCosmos". For the moment, this is where user links will appear.
-
TestDriven.NET Launch Report
Two weeks after the launch of TestDriven.NET 1.0, I'm still feeling quite giddy from the all positive feedback. I knew there were a few enthusiastic users out there, but I was quite taken aback by the response. Thank you everyone for your support! If it carries on like this I'm confident we will get integrated unit testing out to the masses. There is still a loooong way before every mort, elvis and einstein has heard of TestDriven.NET. Erring on the optimistic side, 0.1% of .NET developers have tried using the add-in. I like to think a few more than that could benefit from using it.
-
TestDriven.NET 1.0 - The Acid Test
As you may have already noticed, TestDriven.NET 1.0 has finally been released! In the stress and excitement of getting a golden build together, I didn't get a chance to blog about it myself before lighting the blue touch paper! For what feels like months I've been working nights trying to ensure that TestDriven.NET works with all versions of Visual Studio .NET, for all languages, on all platforms, for all user types using any of the major unit testing frameworks. The compatibility matrix is daunting and there are a lot of dark and scary corners! This couldn't possibly have happened without countless debugging sessions over email and Messenger with many individuals. I would also like to thank people for their patience with the beta and RC version timeouts. This kept the pressure on for new releases and gave new versions of the installer an important workout. This has now been disabled and I'm not sure I will ever use timeouts again!
-
Pocket Dashboard
Loren Halvorson has found a use for his Pocket PC. A Pocket PC dashboard for CruiseControl.NET! Read about and download PocketDashboard here.
-
Unit Testing Windows Forms Applications
Thibaut Barrère has a good write-up about using NUnitFroms with TestDriven.NET. aparrently NUnitForms is getting serious and writing GUI tests is easier than you'd expect. I have only flirted with GUI tests in the past. It looks like I'll have to give them another go.
-
Process.GetProcesses() as Non-Admin
Update: Thanks to Kevin Driedger and Arild Fines for pointing out the pitfalls of using 'tasklist.exe' on Win2k. On Win2k it is called 'tlist.exe' and is apparently an optinal component. In the end Trey Hutcheson saved the day by giving me the PInvoke code I needed (thanks Trey!!). It will work on all platforms now, for admins and regular users.
-
Process Performance Disabled
I've started getting the following exception when a I call pretty much any method on the 'System.Diagnostics.Process' class.
-
Equivalent MSBuild/NAnt Tasks
I've just added a new page to the MSBuild Wiki that compares equivalent NAnt and MSBuild tasks. The page contains links to all of the MSBuild and NAnt task documentation I could find. I'm sure there will be some errors or tasks in there that I've missed. It's a Wiki, so please jump in there and fix any mistakes! You'll need to create a Channel9 account before you can start editing.
-
Feeling the Bounce (RC7 Bug)
Note: This bug only effects people who downloaded TestDriven.NET RC7 on 05 Nov and are seeing "System.IO.FileNotFoundException: File or assembly name '...', or one of its dependencies, was not found."
-
State of Play
I'm afraid our source control database is still out of action. The whole point of aiming for V1.0 was to mark a stable branch in the database. It would be crazy to take a snapshot from my development machine and call that V1.0. Because of this I have decided to go with the last automated build until the database is back up and running. This is set to time out on the 30th of November. The golden version should be available well before then.
-
TestDriven.NET Build 841 RC6
This was so nearly V1.0! Unfortunately my Subversion source control database wedged itself with immaculate timing - I was in the middle of the last couple of checkins! It has been repairing itself for the last 24 hours. I don't know exactly when I'll be able to do the final build. I've only had a problem with SVN once before (in over a year of heavy use). It was able to repair itself last time - it just took a while.
-
TestDriven.NET FAQ List
I have started populating a FAQ list for TestDriven.NET. Here is one just in from Alex Hildyard.
-
Unknown Test Runner Type
[Update: Fixed in build 799]
-
GMail Drive Shell Extension
-
TestDriven.NET RC2: Keyboard Mapping
Peter Provost - If the focus is on the Output window, and you use a hotkey to launch the addin, you get an output message that says, "Unknown window vsWindowTypeOutput". It sure would be nice if it could find the topmost open editor and use the first test class in there.
-
TestDriven.NET RC2: Test With... Debugger
-
TestDriven.NET RC2
The final release is getting close. This last two weeks I've been fixing bugs and tackling issues I kept putting off. A lot a work has gone into getting the installer right. Getting an add-in to install and uninstall consistently for all versions of Visual Studio .NET is a minefield!
-
Introducing MutantBuild
I'm now using MSBuild and WiX for all of my active projects. I ended up with a few VS2003 solutions that I didn't want to convert to VS2005/MSBuild format for one reason or another. It is a pain keeping Windows Forms applications compatable with .NET 1.x when editing using VS2005. I also wanted to be able to compile NUnit for .NET 1.0 using the VS2003 solution strait out of SourceForge.
-
FTP Uploads and WinXP SP2
For some strange reason FTP uploads are only working from one machine on my network. The working machine is running WinXP SP1. All of the other machines are WinXP SP2 or Windows 2003 Server. I've disabled the windows firewall on all of these machines (I'm running behing a NAT router) but still no joy.
-
Command Line Re-Install
Here is the lazy way to update to the latest version of TestDriven.NET (AKA NUnitAddIn)
-
New Version
As some of you have already noticed, the last version of NUnitAddIn expired today. With impeccable timing my Subversion server ran out of space and 'wedged'. Luckily I do have backups and local versions on various machines. To cut a long story short, I have been recovering that rather than getting out a new version for the last 24 hours.
-
MSBuild FlexWiki
I've just converted my MSBuild Bloggers and Resources post to a FlexWiki page. Do you have an MSBuild category on your blog? Have you written any MSBuild tasks? Do you know of any good articles or resources? Please add them to the site - don't be shy!
-
Test With... Runtime
I thought I'd take a souvaneir snapshot before I repave. The final straw was installing .NET v2.0.31112. This is the runtime you get with the beta of Monad over at BetaPlace. Installing it in a virtual machine would have been sensible, but I was impatient.
-
Target Dependency Graph
Using Peli's excelent Quickgraph library, I've written a little app to render MSBuild dependency graphs. Below you can see all of the targets in a C# project along with their dependencies. You can find the fiend responsible for it over here.
-
MSBuild Reference on MSDN2
Some minimal MSBuild docs have been posted to MSDN2. At last we have some tasks documentation! I've updated my MSBuild Bloggers and Resources list.
-
Another Bizarre Constellation
You had the .NET 2.0 System assembly and friends last time. This time it's the turn of System.EnterpriseServices. The boxes represent 'expanded' assemblies with all references shown (except to System and mscorlib). The odd thing here is that 'System.Transations' has a reference to itself! It seems to be the only assembly in the entire framework like this. I don't know if this is an artifact of how they're setting up circular references or by design. Can anyone shed some light on this?
-
Defending Full Length Feeds
Steve Maine puts the case for full length feeds much more eloquently then I ever could. All I can say is that I'm not terribly fond of the new format. If as Scoble says it's a bandwidth issue, are there not any alternatives? Maybe we could syndicate out the supply of full length feeds. They could be made available to a few specific IP addresses on the understanding that the owner mirror the feed. There would be exposure in it for the mirror and choice for the users. Mirrors could choose to differentiate themselves by the theme they use on their main page or how they organize the feeds. Some popular sites already use this solution for their downloads. Surely RSS feeds were designed to be syndicated!
-
System.Orgy (second try)
My experiment the other day to include svg content in my weblog failed dismaly. I've used a PNG file for those of you who couldn't see the image last time. It's a shame bacause I've grown to like svg.
-
Keyboard Shortcuts
[Xai comments] I just started using your tool and I have to say that I love it. Only one thing I'd improve, give us a keyboard shortcut! By that I mean let us know what we should map keyboard shortcuts to. For instance, I want to map a keyboard short cut to running tests on the solution. What command would I map it to? Or can I?
-
Lazy Update to NUnitAddIn-0.9.576d
Here is the lazy way to update to the latest version of NUnitAddIn.
-
NUnitAddIn 0.9.574 + Visual Studio 2003
A few people have had issues running this latest build under Visual Studio 2003. I know it works on some machines (mine for a start!). Peli has Visual Studio 2002, 2003 and C# Express installed and it worked on all of them. Loren has had it working with just Visual Studio 2003 installed. I am now pretty stumped as to why it works on some machines but not others.
-
Installing NUnitAddIn-0.9.568
The previous build of NUnitAddIn (build 0.9.482) was set to expire on August 30th. The test execution engine it uses was derived from a pre-beta version of NUnit 2.2. This latest build has been synchronized with the final NUnit 2.2 source. I'm hoping to contribute these changes to the NUnit project in the near future (in particular the 'nunit.framework' version independence).
-
Release Notes for NUnitAddIn-0.9.568
Download: NUnitAddIn-0.9.568
-
NUnit Add-In
You can download the latest version here.
-
MC++ to C++/CLI
Stan Lippman posted a link to Moving Your Programs from Managed Extensions for C++ to C++/CLI. A while back I was working on a MC++ language provider for Reflector. Unfortuantely the lack of support for jagged arrays made a lot of decompiles impossible and not having automatic boxing made others a pain. I'm looking forward to picking up the project again with C++/CLI.
-
MSBuild Bloggers and Resources
blar
-
More MSBuild
I'm keeping my MSBuild Bloggers and Resources up to date with the following entry. Let me know if I've missed anything.
-
Fusion Changes
Junfeng Zhang has made a number of posts recently about changes in assembly probing for .NET 2.0. Since I deal with this stuff a lot, I thought I'd better note it here to remind myself.
-
CLR Managed Debugger
I did a double take on this one. A managed debugger, written in (C#) managed code!
-
Security Implications of InternalsVisibleTo
Nat says:
I think whenever we need to use this attribute, we should make sure that we make it internally visible to a strongly named assembly. Otherwise, this is just another crack in a pot. If we want to use it with Unit Tests, I mean that Unit Tests should be strongly named. :) Otherwise, Microsoft should make it extensible so that we can make this attribute apply only if it is a debug build. What do you think, Jamie?
-
[InternalsVisibleTo("Microsoft.Build.Engine.Unittest")]
I was spelunking the .NET framework 2.0 and noticed the following assembly attribute on 'Microsoft.Build.Engine'.
-
Debugging Application Startup
Matt Pietrek has a useful tip for attaching a debugger on application startup. I'm sure this will save my skin one day. More info and fun.
-
.NET Undocumented
.NET Undocumented has quickly become one of my favorite blogs [rss]. Wesner Moise has another gem for us in Iterators, Not Just for Iteration.
-
Tasks for MSBuild 2.0 (VS 2005 beta 1)
I have just realised there are over 100 tasks for MSBuild 2.0 in the .NET Solution Build & Deployment Process & Tools GDN sample! These tasks were developed here in London by Microsoft UK. They even include NUnit and WiX tasks. Here is the long list....
-
Release Notes for NUnitAddIn-0.9.482
This latest version was developed using Visual C# Express,
built using MSBuild and packaged using WiX. It is compatable
with the following versions of Visual Studio... -
Field of Dreams
This last few days I have started getting back into MSBuild. At the end of last year I was colaborating with Loren Halvorson trying to make MSBuild part of our respective build processes. The idea was to carry on using Visual Studio .NET 2003, but to convert solution and project files to MSBuild before compiling. At the time the build files (.targets) that came with the PDC version of VS 2005 didn't support embedded resources, the MSBuild engine took a lot of coaxing to work with .NET 1.1 and there was no easy way to build C++ projects. In the end it all turned out to be a little too painful. Loren went on to use the NAnt <solution> task (which has matured a lot) and I went back to doing Visual Studio command line builds (the only way at the time to build C++ project files).
This last attempt turned out to be a lot more successful. I have been able to develop using VS 2005, build using MSBuild (and .NET 1.0), package using WiX and deploy on everything from VS 2002 and up! You can find the end results here.
-
VS 2005 beta 1
It has been a bit of work getting it to work with VS 2005 beta 1. In this latest revision the Visual Studio extensability assemblies have changed. Also the technique I was using to activate the add-in in a new app domain no longer works. I've now fixed it to use the default domain but this causes issues for VS2002. I can no longer use binding redirects in the app domain's config file to make it work with .NET 1.0. I am now forced to build against .NET 1.0 if I want to remain compatable with VS 2002. Luckily MSBuild has come to the rescue!
-
VC Build
VCBuild is available in this download.
-
MSBuild Bloggers and Resources
Note: This page has been made obsolete by MSBuildBloggersAndResources on FlexWiki. Please join the fun there and add some of your own links!
-
MSBuild and Monad
Alex Kipman on the overlap between MSBuild and Monad. You won't find this on his blog.
-
Fragmenting of the testing tools market?
Darrel Norton asks
-
System.Testing
Peter Provost has started a petition to include unit testing support in all versions of Visual Studio 2005. While I agree that unit testing should be essential part of all development, I don't think Visual Studio is the place to introduce an important new API. I think a much more fitting place would be the BCL and SSCLI/Rotor. At the moment the BCL has an extensive set of unit tests. I would be in favor of converting these over to using a core testing framework (say 'System.Testing'). We would then have a standard API for writing tests under all implementations of the CLI. I think this is where real value would come.
-
Visual Studio 2002, 2003 & 2005
It is getting there. Your feedback particularly welcome if you're trying it with Visual Studio 2002 or 2005. If it fails to load when Visual Studio first starts - check the left hand box in 'Add-in Manager' next to 'NUnit Add-In'. Make sure it's the left hand one, you don't want it loading on startup!
-
NUnitAddIn & VS.NET 2002
Having difficulty installing the Add-In into VS.NET 2002 - is it supported? The add-in appears, but when I turn it on I get 'The Add-in 'NUnit Add-In' failed to load..... Error Number: 80131534 - does that mean anything to anyone? Would upgrade, but we have too many systems to upgrade and are at a critical point in development - shame 2003's project files are not backward compatibal eh!
-
Non-Admin & VS2005
I've had mixed success with the NUnitAddIn installation issues. I've tried to make it so that an administrator can do and install for all non-admin users. According to the documentation Visual Studio does supports this, but so far I haven't been able to get it working. I even created a noddy add-in using the 'Extensibility Project' wizard, but even this wouldn't work for non-admin users. Are there any add-ins out there that work for non-admin users?
-
NUnitAddIn Install
If you have had problems installing a recent version of NUnitAddIn please contact me. I know some people have had issues and I would really like to get to the bottom of this. The most recent version is NUnitAddIn-0.6.365 and you can find it here. There have been over 800 downloads of this version and only 1 person has contacted me (thanks Mawi). The chances are it will work, but if not please let me know!
-
Mono in 2005
I'm in the slightly odd situation where only Mono is working with Visual Studio 2005. The older .NET runtimes are throwing the following exception...
-
Changing a DLL Project to EXE
NUnit supports having a '.config' file associated with a test assembly. When creating a new app domain, NUnit looks for a file with the same file name as the test assembly but ending with '.config' (eg My.Tests.dll.config). This is similar to the way .NET uses EXE.config files when a new process is started.
-
.NET Reflector Add-Ins 4.0.3.0
The Reflector Add-In for Visual Studio .NET is now being maintained in the .NET Reflector Add-Ins GDN Workspace. This has the huge advantage that for every new build of .NET Reflector the add-ins will be compiled and updated. Although the add-ins might keep working when you use Reflector's 'Check for Updates' feature - it is highly recomended that you download the latest add-ins.
-
App.config Files
Kiwidude asked a question about how 'app.config' files are handled.
-
Green Bar Lovers
-
Abstract Test Pattern
I thought now would be a good time to mention NUnitAddin's support for 'Abstract Tests'. Jonathan de Halleux has a good write up where he compares the Abstract Test Pattern with MbUnit's support for Composite Unit Testing. I'm working with him to add support for MbUnit and will mention here when it's ready. For the moment this is what you can do with plain old NUnit...
-
A Quick Outline
The .NET Guy highlights one of the most useful features of Reflector from a design and understanding APIs point of view. Selecting 'Outline' with only public visability checked on one of your own namespaces can prove very informative.
-
Reflector Add-In Resurrection
You must have been hiding under a rock if you haven't heard about the new version of Lutz Roeder's .NET Reflector by now. With its support for generics, loading any version of mscorlib (including 2.0 and Mono) and the refreshing of assemblies you're in for a treat! This means all of the frustrations faced by my original Reflector Add-In are gone.
-
One for the brave...
devenv nunitaddin.sln /build Debug sln2wxs nunitaddin.sln /config Debug candle nunitaddin.wxs light nunitaddin.wixobj
ren *.msi NUnitAddIn-0.6.207d.msi dir *.msi 01/05/2004 15:09 845,312 NUnitAddIn-0.6.207d.msi 1 File(s) 845,312 bytes 0 Dir(s) 2,674,440,704 bytes free -
Parsing a Solution File
There's a new challenge up at Code Blog. This time the tests are for something a little more real. The aim is to parse a Visual Studio SLN file. I admit to having a vested interest in some code to do this. I am sick to death of poluting my test code with explicit knowledge of where project output directories are located ('bin\Debug' or whatever). I really want to reference my project directories by name. For example, 'Projects.Find("MyProject").BaseDirectory'.
-
ASP.NET's Configuration System
Have you ever wondered how ASP.NET installs its fancy 'Web.config' configuration system? Well, here it is...
-
Sandboxing code dynamically
I have found a good article on Ivan's blog on the proper way to sandbox code.
-
New Test
There's a new set of unit tests over at Test Driven .NET. Thanks to Johan Danforth for being our first 'test driver'. Hopefully this one will show there are many ways to skin a cat. Once there are enough submissions up, I am hoping to graph them (maybe using Jonathan de Halleux's NPerf recently posted on Code Project).
-
clientScriptsLocation
Donny Mack shows us how to specify the 'aspnet_client' directory in your Web.config. I'm sure this will come in useful soon (I'm playing the Cassini web server).
-
Assembly References
I've added the ability to add assembly references when compiling with Code Blog. Something that threw me is the strong name key used to sign the 'System' and 'System.Web' assemblies are different! To make life easy for you I'm now using LoadWithPartialName. To reference the correct version of 'System.Web' you can just do "System.Web, Version=1.0.5000.0".
-
((ArrayList)list).Sort();
Within minutes of posting a link to Code Blog, someone submitted the following solution...
-
Code Blog
I've just uploaded a set of unit tests for a sorting algorithm. Anyone is welcome to flesh out the failing stup implementation and make the tests pass. You can compile the code and run the tests online. Once all tests pass you are free to give your submission a title and post to the Code Blog. To see other people's submissions you can subscribe to the feed.
-
Comment Spam
I may have just stumbled accross a solution for comment spam. You can comment, but only when it builds and all tests pass... ;o)
-
the /dev/null of the universe!
A funny little exchange on /.