Developing on Staxmanade

StatLight v1.6 is Out

Get The Build

What is StatLight?

In short, it allows you to run your Silverlight tests on a Continuous Integration server or alongside your daily development.

Fore more information go check out the project site http://statlight.codeplex.com

Some ramblings (about the project).

It’s funny how the release cycle of this open source project has turned out. I don’t have any sort of calendar reminder that pops up saying “it’s been 4 or 5 months and time to get out a new release”. However, since I first open sourced the project I’ve put out a new release on a pretty consistent 4/5 month cycle and have done so since December 2009. It just so happens about every 4/5 months there is enough features and or fixes piled on top that It’s time to put out an “official” build. Not bad for a part time (free to the community) gig.

Thanks to the guys at CodeBetter and JetBrains for giving us a TeamCity build server, I put a build of StatLight up on their TeamCity server. This has been great for myself. When issues or feature request come in, all I have to do is dev them out, push the code out to GitHub and the TeamCity build produces an artifact that people can pull down and use/test right away.

What’s the difference between a TeamCity build and an “official” release of StatLight? To be honest, NOTHING. When I decide it’s time to release an “official” build, I head over to the TeamCity, download the latest build and throw it up on CodePlex and NuGet and call it the “official” release. I guess the biggest difference is this means I now have to go update the documentation out on the CodePlex site. I’m not particular happy with this process and hoping my new pet project using http://sphinx.pocoo.org/ to generate a CHM documentation file will help with future versioning of the tool. I’m working on a new blog post for how I got this working…

Some more ramblings (about this release)

This build comes with some pretty major internal refactorings. Finally, after 3 years, I’ve put in an IOC container (really liking TinyIOC for this task). This cleaned up quite a bit of the codebase. Introduced a couple regressions, bug the community was great in helping me figure this out and I’ve beefed up my test coverage to avoid this in the future. There is more cleanup to do in the codebase, but much of the hard work was done and it’ll be small refactorings as I see them going forward.

Some of this build’s highlights:

I’d highly recommend reading the release notes on the download page to get a full list of features/fixes. http://statlight.codeplex.com/releases/view/73869

  • Support for Silverlight 5.
  • Overhauled the “Continuous” mode. (Provide better U.I. and support for multiple xaps/dlls)
    • Note: I was getting a bug report that it could occasionally run a xap multiple times. Hopefully it’s fixed now, but if you see it and can reproduce it. Let  me know.
  • MSTest TRX output format. (Note: This was requested heavily, but when it was added I didn’t receive much feedback on whether it was working or not… So if you have issues, first start a Discussion or file an  Issue)

Special thanks to Bob Brumfield for fixing a number of pathing issues after a directory re-structuring I made in the project. With his fixes we were able to get Silverlight 5 support into the project sooner than later.

Sort-of known issue with this build.

Due to the large scale refactoring that happened within StatLight I wouldn’t be surprised if a few regressions were introduced. Hopefully not as I’ve setup a large amount of automated tests around the project. But It’s hard to get everything.

I’ve had a few people report an issue with symptoms similar to the following.

If you experience any sort of “Invalid or malformed application: check manifest” error. This is probably due to a StatLight web server side exception not being reported out correctly. Try downloading the latest from the TeamCity build (follow the link on the StatLight home page).

What’s to come?

If you feel brave, and clone the current codebase you could get some early access to a version I have working with the Windows Phone Emulator. This was actually an early branch of the project I created many moons ago, and one that a user forked and added a couple fixes to a while back. I’ve since merged this into the main-line of StatLight.

This early version doesn’t yet support the full gamut of what StatLight’s Silverlight version supports, but I’m hoping to get it in there. It should work with the recent builds of the Microsoft.Silverlight.Testing that work on the phone. If you’re interested in helping out here, the big reason I don’t support most everything on the phone is related to the big ol monster build script in StatLight. I have to add some magic dust to this script and make dual compile other projects for both Silverlight and the phone. The codebase itself shouldn’t have to change much, but the build scripts and integration tests will require the majority of the effort.

StatLight 1.4 and almost 1.5

It’s been a while since I blogged about any updates to the StatLight project and even though people are saying “SilverLight’s dead” I’d have to say there’s been more community contribution in the last few months to the project than there’s ever been.

What is StatLight?

For those of you who don’t know, it’s a simple little command line tool you can use to execute tests for SilverLight test projects. You can get some more information on the project at the project’s home page and documentation page.

 

Release of StatLight 1.4

It’s been several months since I posted the 1.4 release of StatLight. It was full of all kinds of goodies. Go checkout the release page to see what updates were included.

There was a regression introduced with this release that caused U.I. tests in TeamCity to not report correctly. It’s since been fixed and you can use the CodeBetter TeamCity server to pull down the latest build of StatLight if you need this fix. If you hit the login page, just click on the login as a guest link to access the TeamCity builds.

 

Release of StatLight 1.5 (soon, maybe, sometime)

imageIf you are interested in what is to come with the next release, you can head over to the “planned” tab and check out some of the new features.

But I’ll write about some of them here anyway Smile with tongue out

 

Community Contribution.

xUnitContrib Test Runner

I’d like to say thanks to Remo Gloor for his contribution of the official xUnitContrib Silverlight test runner. Remo created a StatLight runner host that leverages the xUnitcontrib Silverlight test runner to execute xUnit tests. This provides some great xUnit support and is considerably faster than the xUnitLight adapter originally implemented.

 

Growl Plugin

Geir-Tore Lindsve leveraged the new extensibility model recently added to StatLight to create a plugin that would notify Growl of failing tests. You can check out the project at https://github.com/lindsve/Statlight.Growl

 

ReSharper 6

ReSharper support has been around for a while now with the AgUnit project. I was recently contacted by Steven Kock who wanted to see if it were possible to dump his custom Silverlight Test runner and leverage StatLight. I’ve been working with him on this, and am really excited about the value add we get from having Steven push StatLight around. Looking forward to his suggestions, and who knows – we may get some much better performance out of StatLight. Even though it’s still under dev, I’m just stoked can’t say how awesome it was to open up a Silverlight test project and execute a single test by using my R# shortcut.

StatLight – V0.5 released!

A new version of StatLight has been released!

Major Features Added:

  • NUnit support
  • Further MSTest support
    • In the previous version (0.4) you could only use StatLight with the March 2009 build of Microsoft.Silverlight.Testing.dll. It will now work with any version.
      (Update: the Silverlight Asynchronous testing style is not currently supported)

Minor Tweaks:

  • The debug.assertion creates a failure test event
    • It used to write a message to the console. It will now create a failure event, similar to a test that fails.
  • Support for [Ignore]’d tests for each supported framework (MSTest, NUnit, Xunit)
Soon to come:

Introducing StatLight (Silverlight Testing Automation Tool)

 

What is it?

StatLight is your first class TDD/BDD/(Insert your testing style here) tool for Silverlight. Its main focus is developer productivity.

(The website is young, however the tool is ready to go… Download StatLight here)

In the realm of Silverlight, the tooling support has not had the chance to catch up to what you might have come to expect from normal .net development. When developing Silverlight applications using a test driven style, with the current tooling, it can become a little more tedious than one might like.

A number of testing methodologies have sprung up to enable some sort of testing for Silverlight developers; however, few actually run the tests in the browser.

Below is a short list of features StatLight currently has.

Features:

  1. In browser runner to test how your code will “actually” run in the wild.
  2. TeamCity Continuous Integration support
  3. Smooth Console Runner
    1. One time runner (screenshot below)
      image
    2. Continuous Integration runner
      1. This runner will startup and watches for any re-builds of your text xap file. Every time you re-build it will pick up the new test xap and immediately start running the tests.
      2. This feature gives the most as far as developer productivity.
      3. I will put out a video to show how best to use it soon…
  4. Tag/Filtering support (to narrow down the tests run at a given time)
  5. XUnit support leveraging XUnit (Light)
  6. MSTest support. (March 09 build)

On the way:

  1. Better Documentation and how to/help videos
  2. NUnit support leveraging Jeff Wilcox’s NUnit port
  3. CruiseControl.net support
  4. MSBuild

Download StatLight here