Posts Tagged ‘BizUnit’
I’m back in the NUnit world after a long time. We are looking at packaging up the NUnit GUI along with some BizUnit tests for my current gig so that we have a set of integration tests to run on the rigs. Ironically, the project isnt even a BizTalk one, but BizUnit is still a useful framework, nonetheless. More about that in a later post and back to the main subject here.
I created a separate NUnit project file and specified assemblies etc. I intend the project file to be deployed on the rigs as well so we can just open the GUI, select it and run the tests. The first hitch I ran into was that the NUnit GUI didnt recognize my app config file. After some digging around I found this post by Charlie Pool which shed some light on how NUnit looks for config files however the key point missing in Charlie’s post (or maybe its obvious and i’m just dense 🙂 )there is the exact location of the file. The file should be a sibling of the NUnit project file and not in the bin\debug folder (unless of course your nunit proj file is there)
To summarise Charlie’s point with my extra clarification: If you load an NUnit project, such as mytests.nunit, the config file must be named mytests.config and should be co-located with the .nunit file.
I also found a gem in the comments that helped me sort the issue. The commenter indicated that we can examine AppDomain.CurrentDomain.SetupInformation.ConfigurationFile in debug mode. I didnt know this could be done and found a ton of interesting stuff in the SetupInformation structure too which i should look into some more.
Hope this helps anyone running into this issue.
BizUnit meets XAML
So, Kevin has got round to making an alpha release of BizUnit v4. This time the steps are all in XAML which i think should now faciliate new tooling. I’m getting my grubby hands on it now.
BizUnit (3.x) Snippets
This is sooo like me. Always late to the party. 🙂 . Just this evening, before i found out that v4 had been released (although i knew it was in the works for sometime) , in the latest code drop for BizUnitExtensions (18.104.22.168) , I’ve included some snippets that i wrote quite a while ago and just never got round to uploading. Take a look. I know its rather late and probably completely out of date now that v4 is released but hey, v4 is still alpha so i have some time to catch up.
So what of the BizUnitExtensions project itself? As you may have seen, there hasnt been any updates or releases for many months now. The reason is that although for the past 18 months I have been involved in a major BizTalk gig, we have been required to use a custom test framework which has left no scope to use BizUnit at all. Consequently, I let the codebase languish with only one or two minor updates.
Although project-wise nothing has changed, just today I decided it was time to give BizUnitExtensions some attention. I have recompiled the sources (after the codeplex TFS upgrade) and added the snippets in. I have also started to do some major restructuring of the code-base and recompiling against .NET 3.5, EntLib 4.1 etc which I will make available shortly and possibly include some fixes that folks have described in the forums.
Beyond a minor release, I dont think I will continue to maintain BizUnitExtensions as a separate project. I’ve had discussions with Kevin Smith about merging the steps from this project into the main BizUnit distribution and v4 is where this will happen as soon as i get the go-ahead from him. With MockingBird and WSCFBlue taking up the majority of my limited spare time, I have to let go of some projects. But i think merging the code into BizUnit (core) will be good for the community so it becomes a one stop shop. Most of the steps complement the core nicely by supplementing it with missing features and with the XAML foundation, efforts can now be directed towards tooling.
Check out the snippets and let me know if they add any value to you. If this is of some value, then I can try and do the same for v4 so when we merge we have a full set of new snippets. If you are an early adopter of BizUnit v4 and want to use Extensions functionality and can help with porting to XAML and/or writing snippets, do let me know.
Finally made some progress on BizUnitExtensions and have released Beta-1 for the new version which now complies with BizUnit 3.0’s object model. This release specifically centres around the main Extensions and the Extensions.BizTalk libraries.
- The Altova library has now been deprecated as there is much better xml validation support in the .NET Framework so the altova library is redundant.
- The steps for manipulating applications, receive locations and send ports have now been completely overhauled, so there is a separate ApplicationConductorStep, ApplicationGetStatusStep and ApplicationVerifyStatus step and likewise for ReceiveLocations and Send Ports. The GetStatus steps will load the current status into the context which can be useful when we need to use that info in subsequent steps. VerfyStatus will check the status against a given value.
- The ReceivePortConductorEx step in the old code-base has been transitioned to the above mentioned set of ReceiveLocation steps as it really was dealing with locations rather than the ports. There is a new ReceivePortConductor step which allows the bulk enabling and disabling of all the locations in that port.
- Updates to the Orchestration Conductor allowing a STOP action on an orchestration.
- The namespaces and assembly names have all been revised (for example, using the Biztalk steps requires the assembly name to be BizUnit.Extensions.BizTalk.dll) so your existing test cases will need to be updated.
Forthcoming Updates and Releases
- Bram Veldhoen has contributed a fair amount of code including steps to link in with the Pipeline Testing Library. I will incorporate that into Beta-2 as I need to work through all the steps and the associated helpers and utility classes.
- I have updated the Oracle and EntLib libraries as well, but haven’t had any time to test them. As I now have Oracle XE, I should be able to make some progress on that pretty soon. With EntLib, its a little more complicated. As I didnt write those steps myself, I am not too familiar with the code, so it will take a while to update. So for the present, its still using EntLib 3.1.
- The codeplex workspace has also been cleaned up and slimmed down drastically. A lot of the pointers to tutorials etc are all largely redundant anyway.
- The Roadmap page has been completely rewritten. The framework has come a long way since that material was written. The only stuff left there is a list of probable new steps and some ideas for tooling around BizUnit which may make it into some future version of the framework.
Hope you find the updates useful. Let me know if you encounter any bugs or if you have any suggestions.
BizUnitExtensions crossed the 400 downloads mark recently and im really chuffed about that. One of the things I’ve been meaning to do for a very long time is to release some work i did with my previous project team in restructuring the codebase for Extensions. Basically, in alignment with BizUnit 2.3 we moved all non core steps into their own assemblies so now we have separate assemblies for Extensions.Biztalk, Extensions. EntLib and so on. This release is now on CodePlex. (Its not a default release so the homepage still shows the old one so use this link to get it).
Before you download this however please note the following
- There is no new functionality as such (as far as i remember) and this is only an interim release to set the stage for v3.0 which has a completely new object model, strong typing of test step properties and so on. So you probably dont need this if you are happy with the previous release.
- As the steps have been moved into different assemblies, the namespaces have also been changed to correspond with them and this will cause existing XML steps to break unless updated.
- Since we are no longer redistributing the core BizUnit engine with Extensions, the extra entlib logging we had added to the core engine has now been dropped. I hope we can revisit this sometime in future. (The EntLIb database steps are all safe in their own assembly.. just the core logging no longer uses entlib).
- The assembly version numbers have at last been updated and they are all fixed at 22.214.171.124. (This was doing my head in for a long time and the procrastination finally got to me).
The wiki had a roadmap suggestions page for a long time and the points there had been converted to work items and for a few i actually got votes on what features would be useful. I’ve now been through the list with a fine tooth comb and extracted the ones to work on immediately.
I have been corresponding closely with Jean Paul Smit and looking through his excellent work on the Biztalk Solution Factory and eventually Extensions will make it into a full fledged Guidance Package.
The 4 main areas to work on are as follows (outside of the upgrade to BizUnit 3.0). For notes on the areas listed check out the old roadmap suggestions page on codeplex.
- Pipeline Tests
- Link into OrchProfiler
- Link into Quick Counters
- Code Snippets
- TreeView GUI / WPF GUI
- WF Test Script Flow GUI
- Generate BizUnit Test script (now in BSF)
- Test Guidance Packages (also BSF)
- Custom DSL
So thats my priority list. Unfortunately i cant promise any dates. If anyone has written steps in the areas listed below (I’ve chatted to Mike Stephenson about WSE steps), or even other areas that i’ve not listed here then please let me know if you would like to contribute your steps. It will all go towards making this a more comprehensive library.
Jean-Paul Smit has released a new version of Biztalk Solution Factory now with support for generating unit tests. The unit test support is based on BizUnit 2.2 and NUnit 2.4.7. There are actions for generating schema tests, map tests and orchestration tests. Check it out…
I just came across this excellent material on Technet – the Biztalk Server Performance Optimization Guide. Whats even cooler about this paper is that it goes into some pretty good depth on how to use BizUnit in conjunction with LoadGen to do performance testing. This is really good stuff. I was just thinking how good it would be to see a step by step guide to setting up performance testing, including how to get your solution fully isolated and ready etc and along comes this beauty. Its got a complete configuration file which we can customize and use for our projects.
It gets even better wherein there is an entire section on how BizUnit can be used with the end to end BPM scenario. This is an absolute gem. I remember talking with Gar when we first setup BizUnitExtensions on how good it would be to get hold of the end to end scenarios and setup BizUnit for them and this article provides a lot of that. This, IMO, is probably one of the most valuable articles around not only for BizUnit but also because it describes an approach to testing a complete solution.
Check out the articles and happy Biztalking and testing 🙂 Enjoy.
This post is mainly to call out two new resources that i just came across.
The first one is BizUnitDesigner. Finally someone has taken the plunge and written a GUI for BizUnit, at least, one that is publicly available. (I’ve heard rumors of IPR protected toolsets which obviously havent made the public domain). That was one of the key things on my TO-DO list . You know, sometimes procrastination can be good! Someone else takes the initiative. 🙂 I recently started “interviewing” my colleagues to find out what their idea of the ultimate BizUnit GUI would be. I shall compile their responses and share it. I also had some work items for the GUI on my Extensions roadmap on the codeplex workspace. The feedback was going to inform my next toolkit . Since we already have this project available, theres no sense in starting another one. I’ve asked the coordinator if i could join and contribute to this project. At this time it works for BizUnit 2.x and it should be interesting to see how it will work with BizUnit 3.0 (which is still in beta) where Kevin has changed the object model and made it easier to generate BizUnit test cases (and included a tool to generate BizUnit test cases from Excel).
The second one is Michael Stephenson’s series on Biztalk Testing. Michael has already written up over half a dozen articles starting with this and it looks like a really good resource. Some of my colleagues have been doing some interesting work in the way they have been using BizUnit and i have been planning to write them up so i find these posts to be a spur in that direction. We do need a lot of sharing in the area of Biztalk testing and using BizUnit. Here’s hoping we’ll get some good info on practices out into the community.
Check out those links. Enjoy!!