{"id":1058,"date":"2011-02-25T14:09:44","date_gmt":"2011-02-25T14:09:44","guid":{"rendered":"http:\/\/www.navision-blog.de\/2011\/02\/25\/machine-fakes-0-1-0-0-released-built-with-fake-f-make-1-50-1-0\/"},"modified":"2011-02-25T15:02:21","modified_gmt":"2011-02-25T15:02:21","slug":"machine-fakes-0-1-0-0-released-built-with-fake-f-make-1-50-1-0","status":"publish","type":"post","link":"http:\/\/www.navision-blog.de\/blog\/2011\/02\/25\/machine-fakes-0-1-0-0-released-built-with-fake-f-make-1-50-1-0\/","title":{"rendered":"Machine.Fakes 0.1.0.0 released &#8211; Built with &quot;FAKE &#8211; F# Make&quot; 1.50.1.0"},"content":{"rendered":"<p><img style=\"span-left: 10px\" align=\"right\" src=\"http:\/\/www.navision-blog.de\/images\/machine.fakes.png\" \/> My friend <a href=\"http:\/\/nuget.org\/Packages\/ByAuthor\/Bjoern%20Rochel\">Bj&#246;rn Rochel<\/a> (<a href=\"http:\/\/twitter.com\/#!\/BjoernRochel\">@BjoernRochel<\/a>) built a really cool generic model for using fakes and automocking on top of <a href=\"https:\/\/github.com\/machine\/machine.specifications\">Machine.Specifications<\/a> (or MSpec) called <a href=\"Machine.Fakes\">Machine.Fakes<\/a> (or mfakes). <\/p>\n<p><script src=\"https:\/\/gist.github.com\/843770.js\"> <\/script><\/p>\n<p>Today he released version 0.1.0.0 (get it from <a href=\"http:\/\/nuget.org\/Packages\/ByAuthor\/Bjoern%20Rochel\">nuget.org<\/a>) and I want to talk a bit about the build process. Bj&#246;rn and myself thought a tool called \u201cMachine.Fakes\u201d should of course be built with a tool called \u201cFAKE \u2013 F# Make\u201d. In order to do so I had to fix some stuff in Fake which resulted in the new <a href=\"http:\/\/teamcity.codebetter.com\/repository\/download\/bt114\/21897:id\/FAKE-1.50.1.0.zip\">Fake version 1.50.1.0<\/a>. <\/p>\n<p>Here are some things I fixed:<\/p>\n<ul>\n<li>New task DeleteDirs allows to delete multiple directories. <\/li>\n<li>New parameter for NuGet task which allows to specify dependencies. <\/li>\n<li>Bundled with docu.exe compiled against .Net 4.0. <\/li>\n<li>Fixed docu calls to run with full filenames. <\/li>\n<li>Added targetplatform, target and log switches for ILMerge task. <\/li>\n<li>Added Git.Information.getLastTag() which gets the last git tag by calling git describe. <\/li>\n<li>Added Git.Information.getCurrentHash() which gets the last current sha1. <\/li>\n<\/ul>\n<h5>Machine.Fakes build setup<\/h5>\n<p>The <a href=\"https:\/\/github.com\/BjRo\/Machine.Fakes\/blob\/dev\/build.fsx\">build script for Machine.Fakes<\/a> performs the following steps:<\/p>\n<ol>\n<li>It retrieves the version no. via <a href=\"http:\/\/github.com\/api\/v2\/json\/repos\/show\/BjRo\/Machine.Fakes\/tags\">GitHubs REST API<\/a> <\/li>\n<li>It cleans all directories from old stuff <\/li>\n<li>It compiles the app and test projects <\/li>\n<li>It uses MSpec to test the application <\/li>\n<li>It merges StructureMap and StructureMap.AutoMocking into the app by using <a href=\"http:\/\/research.microsoft.com\/en-us\/people\/mbarnett\/ilmerge.aspx\">ILMerge<\/a> <\/li>\n<li>It generates the XML documentation using the <a href=\"https:\/\/github.com\/forki\/docu\">.NET 4.0 version of docu.exe<\/a> <\/li>\n<li>It zips the app and the documentation files <\/li>\n<li>It builds and deploys a Nuget package with just <a href=\"http:\/\/nuget.org\/Packages\/Packages\/Details\/Machine-Fakes-0-1-0-0\">Machine.Fakes<\/a> <\/li>\n<li>It builds and deploys bundled Nuget packages in the following flavors:\n<ol>\n<li><a href=\"http:\/\/nuget.org\/Packages\/Packages\/Details\/Machine-Fakes-FakeItEasy-0-1-0-0\">Machine.Fakes.FakeItEasy<\/a> <\/li>\n<li><a href=\"http:\/\/nuget.org\/Packages\/Packages\/Details\/Machine-Fakes-RhinoMocks-0-1-0-0\">Machine.Fakes.RhinoMocks<\/a> <\/li>\n<li><a href=\"http:\/\/nuget.org\/Packages\/Packages\/Details\/Machine-Fakes-Moq-0-1-0-0\">Machine.Fakes.Moq<\/a> <\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<p>Now you can start using this awesome project by calling:<\/p>\n<blockquote>\n<p>install-package Machine.Fakes.{Flavor}<\/p>\n<\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>My friend Bj&#246;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 0.1.0.0 (get it from nuget.org) and I want to talk a bit about the build process. Bj&#246;rn and myself thought a tool called \u201cMachine.Fakes\u201d should [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[448,546,29],"tags":[664,544,607,608],"_links":{"self":[{"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/posts\/1058"}],"collection":[{"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/comments?post=1058"}],"version-history":[{"count":7,"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/posts\/1058\/revisions"}],"predecessor-version":[{"id":1065,"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/posts\/1058\/revisions\/1065"}],"wp:attachment":[{"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/media?parent=1058"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/categories?post=1058"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/tags?post=1058"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}