PowerSlim

PowerSlim small (1 min) intro video

How to start with PowerSlim

PowerSlim project on github

PowerSlim and SQL

The main idea of the PowerSlim is to use the PowerShell scripting language. I realised that an acceptance test is nothing more than SUT and environment administration, while dealing with acceptance testing for the last 5 years. Check out my small post about the HLT pattern. So why don’t use the power of the administrative languages like PowerShell?

Actually, the road to PowerSlim was started at 2006, when the .NET implementation of the Fitnesse fixtures – PowerShellRow, PowerShellColumn and etc. were written by me. Then it became possible to write something like this “start-service MyService” on the Fitnesse page instead of a fixture in the implementation code. So the tests have become more transparent. Please, keep the HLT pattern in mind! It should always be possible to deal with a SUT in such a “simple” way. There is something wrong with your production design, if it isn’t. But don’t worry. You are still able to write a “nonadministrative” code with the PowerShell (e.g. (new-object MyClass).CreateJob())

PowerSlim? What does it mean?

First of all, don’t treat this one as a new acceptance testing framework (ATF). It is a small but powerful plugin for the Fitnesse ATF.

The current implementation is pure PowerShell implementation.

The project is hosted on GitHub.

12 thoughts on “PowerSlim

  1. Thank you very much for making this available. I am completely new to Fit and FitNesse but after a few days of reading and experimenting I am genuinely excited about how I can integrate FitNesse and PowerSlim into my development environment. I’m excited about testing, which is something I don’t think I’ve ever said before. 🙂

  2. hello! found one problem and solvation.

    when I ran “Test2remotes” test suite of Powershell20Compatibility section, I got 2 exceptions.

    after I added ” ; sleep 1″ to every line
    start-process PowerShell “-ExecutionPolicy unrestricted -file .\slim.ps1 server” -PassThru

    the exceptions are gone

  3. Hi, is it possible to use PowerSlim along with other fixture (jar based) on the same test page? Once I redefined COMMAND_PATTERN other fixture failed. Thank you.

  4. Hi Andrian,
    Fitnesse can work only with a single SLIM server per test execution. This means that you can’t use other fixtures. The whole idea behind PowerSlim is to make it possible to concentrate only on writing test’s “business logic” instead of writing tests fixtures. And one of the advantage of PowerSlim is that test “script” is 100% on a Fitnesse page – you don’t need to hide actual test logic inside java,C#, python e.t.c. code file.

    • Hi Konstantin,
      Thank you very much for your reply. Could you please suggest if it possible to use PowerSlim in Suite/Test SetUp page and then switch to other Slim server in test page?

  5. Hi Andrian,
    I think it is not possible as Fitnesse will create only one instance of a SLIM server per execution (Suite or Test).
    BTW: Could you explain a little bit more your scenario. Why you are trying to combine PowerSlim with something else? Reuse of existing test fextures?

    • Hi Konstantin,
      yes, I need to do some clean up on file system before running Java-based fixture. I believe I need to create Java-based fixture that will run arbitrary command file. This will solved my issue.

  6. Andrian,
    With PowerSlim you can run arbitrary command file (https://msdn.microsoft.com/en-us/powershell/reference/5.1/microsoft.powershell.management/start-process). You can do file system clean-up as well (https://technet.microsoft.com/en-us/library/ee176938.aspx).

    You can even run your java-based previously implemented test fixtures by using PowerSlim.
    I have a team which has a lot of python fixtures written for Fitnesse. We are running them trough PowerSlim as we want to leverage full power of it.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s