Rash thoughts about .NET, C#, F# and Dynamics NAV.

"Every solution will only lead to new problems."

Friday, 25. February 2011

Machine.Fakes released – Built with "FAKE – F# Make"

Filed under: F#,FAKE - F# Make,Tools — Steffen Forkmann at 14:09 Uhr

My friend Björn Rochel (@BjoernRochel) built a really cool generic model for using fakes and automocking on top of Machine.Specifications (or MSpec) called Machine.Fakes (or mfakes).

Today he released version (get it from nuget.org) and I want to talk a bit about the build process. Björn and myself thought a tool called “Machine.Fakes” should of course be built with a tool called “FAKE – F# Make”. In order to do so I had to fix some stuff in Fake which resulted in the new Fake version

Here are some things I fixed:

  • New task DeleteDirs allows to delete multiple directories.
  • New parameter for NuGet task which allows to specify dependencies.
  • Bundled with docu.exe compiled against .Net 4.0.
  • Fixed docu calls to run with full filenames.
  • Added targetplatform, target and log switches for ILMerge task.
  • Added Git.Information.getLastTag() which gets the last git tag by calling git describe.
  • Added Git.Information.getCurrentHash() which gets the last current sha1.
Machine.Fakes build setup

The build script for Machine.Fakes performs the following steps:

  1. It retrieves the version no. via GitHubs REST API
  2. It cleans all directories from old stuff
  3. It compiles the app and test projects
  4. It uses MSpec to test the application
  5. It merges StructureMap and StructureMap.AutoMocking into the app by using ILMerge
  6. It generates the XML documentation using the .NET 4.0 version of docu.exe
  7. It zips the app and the documentation files
  8. It builds and deploys a Nuget package with just Machine.Fakes
  9. It builds and deploys bundled Nuget packages in the following flavors:
    1. Machine.Fakes.FakeItEasy
    2. Machine.Fakes.RhinoMocks
    3. Machine.Fakes.Moq

Now you can start using this awesome project by calling:

install-package Machine.Fakes.{Flavor}

Tags: , , ,


  1. Great seeing yet another project hopping on FAKE!

    However wouldn’t it be easier to fetch git info from the local repo instead of github?

    Comment by Mauricio Scheffer — Friday, 25. February 2011 um 19:07 Uhr

  2. Yes. That’s right. But teamcity.codebetter.com doesn’t support agent-side checkout at the moment. This is just a workaround.

    Comment by Steffen Forkmann — Friday, 25. February 2011 um 19:43 Uhr

  3. [...] Machine.Fakes released – Built with "FAKE – F# Make" 1… – Steffen Forkmann highlights the first release of Machine.Fakes, a library from Björn Rochel which provides a way to work with mocking and fakes under Machine Specifications (MSpec), and discusses how its use of FAKE to build the library resulted in a new release of FAKE, the F# Make tool. [...]

    Pingback by The Morning Brew - Chris Alcock » The Morning Brew #802 — Tuesday, 1. March 2011 um 6:31 Uhr

  4. Cool stuff – great work guys. Cheers, Mike

    Comment by Mike Bild — Wednesday, 2. March 2011 um 13:16 Uhr

RSS feed for comments on this post. | TrackBack URI

Leave a comment

XHTML ( You can use these tags): <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> .