<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Peli's Farm - Pex, Stubs, Moles, QuickGraph, MbUnit, Reflector Addins - RiSE</title>
    <link>http://blog.dotnetwiki.org/</link>
    <description>TouchDevelop, Pex4Fun, Rise4Fun, Pex, Moles, QuickGraph, MbUnit, Reflector Addins</description>
    <language>en-us</language>
    <copyright>Jonathan 'Peli' de Halleux</copyright>
    <lastBuildDate>Mon, 22 Nov 2010 23:45:12 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.2.8279.16125</generator>
    <managingEditor>jonathan.dehalleux@gmail.com</managingEditor>
    <webMaster>jonathan.dehalleux@gmail.com</webMaster>
    <item>
      <trackback:ping>http://blog.dotnetwiki.org/Trackback.aspx?guid=575b1084-7ec4-4913-a6fe-869df8a4fb23</trackback:ping>
      <pingback:server>http://blog.dotnetwiki.org/pingback.aspx</pingback:server>
      <pingback:target>http://blog.dotnetwiki.org/PermaLink,guid,575b1084-7ec4-4913-a6fe-869df8a4fb23.aspx</pingback:target>
      <dc:creator>Jonathan de Halleux</dc:creator>
      <wfw:comment>http://blog.dotnetwiki.org/CommentView,guid,575b1084-7ec4-4913-a6fe-869df8a4fb23.aspx</wfw:comment>
      <wfw:commentRss>http://blog.dotnetwiki.org/SyndicationService.asmx/GetEntryCommentsRss?guid=575b1084-7ec4-4913-a6fe-869df8a4fb23</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Ever wanted to host a constraint solver in your web page? It is now possible to host
the <a href="http://rise4fun.com">http://rise4fun.com</a> web site in an iframe (without
the chrome). It just looks like this:
</p>
        <blockquote>
          <p align="left">
&lt;iframe allowtransparency="true" frameborder="0" style="width:600px;height:800px"
src=”http://rise4fun.com/z3?frame=1&amp;menu=0”&gt;&lt;/iframe&gt;
</p>
        </blockquote>
        <p align="left">
You can learn more about this feature at our <a href="http://rise4fun.com/about">documentation
page</a>.
</p>
        <iframe style="width: 600px; height: 800px" src="http://rise4fun.com/z3?frame=1&amp;menu=0" frameborder="0" allowtransparency="allowtransparency">
        </iframe>
        <img width="0" height="0" src="http://blog.dotnetwiki.org/aggbug.ashx?id=575b1084-7ec4-4913-a6fe-869df8a4fb23" />
      </body>
      <title>The RiSE4fun widget – ever wanted to have a constraint solver in your blog?</title>
      <guid isPermaLink="false">http://blog.dotnetwiki.org/PermaLink,guid,575b1084-7ec4-4913-a6fe-869df8a4fb23.aspx</guid>
      <link>http://blog.dotnetwiki.org/2010/11/22/TheRiSE4funWidgetEverWantedToHaveAConstraintSolverInYourBlog.aspx</link>
      <pubDate>Mon, 22 Nov 2010 23:45:12 GMT</pubDate>
      <description>&lt;p&gt;
Ever wanted to host a constraint solver in your web page? It is now possible to host
the &lt;a href="http://rise4fun.com"&gt;http://rise4fun.com&lt;/a&gt; web site in an iframe (without
the chrome). It just looks like this:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p align="left"&gt;
&amp;lt;iframe allowtransparency="true" frameborder="0" style="width:600px;height:800px"
src=”http://rise4fun.com/z3?frame=1&amp;amp;menu=0”&amp;gt;&amp;lt;/iframe&amp;gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p align="left"&gt;
You can learn more about this feature at our &lt;a href="http://rise4fun.com/about"&gt;documentation
page&lt;/a&gt;.
&lt;/p&gt;
&lt;iframe style="width: 600px; height: 800px" src="http://rise4fun.com/z3?frame=1&amp;amp;menu=0" frameborder="0" allowtransparency&gt;
&lt;/iframe&gt;
&lt;img width="0" height="0" src="http://blog.dotnetwiki.org/aggbug.ashx?id=575b1084-7ec4-4913-a6fe-869df8a4fb23" /&gt;</description>
      <comments>http://blog.dotnetwiki.org/CommentView,guid,575b1084-7ec4-4913-a6fe-869df8a4fb23.aspx</comments>
      <category>RiSE</category>
      <category>Testing</category>
    </item>
    <item>
      <trackback:ping>http://blog.dotnetwiki.org/Trackback.aspx?guid=f93c462b-6837-415e-80d9-a62c8eb0d873</trackback:ping>
      <pingback:server>http://blog.dotnetwiki.org/pingback.aspx</pingback:server>
      <pingback:target>http://blog.dotnetwiki.org/PermaLink,guid,f93c462b-6837-415e-80d9-a62c8eb0d873.aspx</pingback:target>
      <dc:creator>Jonathan de Halleux</dc:creator>
      <wfw:comment>http://blog.dotnetwiki.org/CommentView,guid,f93c462b-6837-415e-80d9-a62c8eb0d873.aspx</wfw:comment>
      <wfw:commentRss>http://blog.dotnetwiki.org/SyndicationService.asmx/GetEntryCommentsRss?guid=f93c462b-6837-415e-80d9-a62c8eb0d873</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://rise4fun.com/">http://rise4fun.com/</a> is a web front end to a number
of tools produced by the RiSE group. It also exposes<strong></strong><a href="http://rise4fun.com/Services.svc/help"><strong>REST
services</strong></a> that allow you to play with the tools from your favorite environment.
</p>
        <p>
          <strong>Rendering DOT graphs to SVG</strong>
        </p>
        <p>
          <a href="http://graphviz.org/">DOT</a> is a popular language to describe graphs. It
can be rendered into SVG using the MSAGL tool on <a href="http://rise4fun.com">http://rise4fun.com</a> .
To do so, you simply need to do a <strong>POST</strong> query to <a href="http://rise4fun.com/services.svc/ask/agl">http://rise4fun.com/services.svc/ask/agl</a> where
the dot code is passed in the request body. rise4fun returns SVG markup that can be
viewed in browsers that support it.
</p>
        <p>
Wondering what graph SVG look like? Check out <a href="http://rise4fun.com/agl/cilreader">http://rise4fun.com/agl/cilreader</a> to
see this beautiful graph. Make sure to zoom out as the graph is rather laaaaaarge.
</p>
        <p>
          <a href="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/ConvertingDOTgraphstoSVGusingtherise4fun_A860/image_2.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/ConvertingDOTgraphstoSVGusingtherise4fun_A860/image_thumb.png" width="604" height="452" />
          </a>
        </p>
        <p>
Cheers, Peli
</p>
        <img width="0" height="0" src="http://blog.dotnetwiki.org/aggbug.ashx?id=f93c462b-6837-415e-80d9-a62c8eb0d873" />
      </body>
      <title>Converting DOT graphs to SVG using the rise4fun REST services</title>
      <guid isPermaLink="false">http://blog.dotnetwiki.org/PermaLink,guid,f93c462b-6837-415e-80d9-a62c8eb0d873.aspx</guid>
      <link>http://blog.dotnetwiki.org/2010/11/07/ConvertingDOTGraphsToSVGUsingTheRise4funRESTServices.aspx</link>
      <pubDate>Sun, 07 Nov 2010 20:09:47 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://rise4fun.com/"&gt;http://rise4fun.com/&lt;/a&gt; is a web front end to a number
of tools produced by the RiSE group. It also exposes&lt;strong&gt; &lt;/strong&gt;&lt;a href="http://rise4fun.com/Services.svc/help"&gt;&lt;strong&gt;REST
services&lt;/strong&gt;&lt;/a&gt; that allow you to play with the tools from your favorite environment.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Rendering DOT graphs to SVG&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://graphviz.org/"&gt;DOT&lt;/a&gt; is a popular language to describe graphs. It
can be rendered into SVG using the MSAGL tool on &lt;a href="http://rise4fun.com"&gt;http://rise4fun.com&lt;/a&gt; .
To do so, you simply need to do a &lt;strong&gt;POST&lt;/strong&gt; query to &lt;a href="http://rise4fun.com/services.svc/ask/agl"&gt;http://rise4fun.com/services.svc/ask/agl&lt;/a&gt; where
the dot code is passed in the request body. rise4fun returns SVG markup that can be
viewed in browsers that support it.
&lt;/p&gt;
&lt;p&gt;
Wondering what graph SVG look like? Check out &lt;a href="http://rise4fun.com/agl/cilreader"&gt;http://rise4fun.com/agl/cilreader&lt;/a&gt; to
see this beautiful graph. Make sure to zoom out as the graph is rather laaaaaarge.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/ConvertingDOTgraphstoSVGusingtherise4fun_A860/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/ConvertingDOTgraphstoSVGusingtherise4fun_A860/image_thumb.png" width="604" height="452"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Cheers, Peli
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.dotnetwiki.org/aggbug.ashx?id=f93c462b-6837-415e-80d9-a62c8eb0d873" /&gt;</description>
      <comments>http://blog.dotnetwiki.org/CommentView,guid,f93c462b-6837-415e-80d9-a62c8eb0d873.aspx</comments>
      <category>Fun with graphs</category>
      <category>QuickGraph</category>
      <category>RiSE</category>
    </item>
    <item>
      <trackback:ping>http://blog.dotnetwiki.org/Trackback.aspx?guid=39724688-2779-4b2c-87b6-a4bc5b007d9c</trackback:ping>
      <pingback:server>http://blog.dotnetwiki.org/pingback.aspx</pingback:server>
      <pingback:target>http://blog.dotnetwiki.org/PermaLink,guid,39724688-2779-4b2c-87b6-a4bc5b007d9c.aspx</pingback:target>
      <dc:creator>Jonathan de Halleux</dc:creator>
      <wfw:comment>http://blog.dotnetwiki.org/CommentView,guid,39724688-2779-4b2c-87b6-a4bc5b007d9c.aspx</wfw:comment>
      <wfw:commentRss>http://blog.dotnetwiki.org/SyndicationService.asmx/GetEntryCommentsRss?guid=39724688-2779-4b2c-87b6-a4bc5b007d9c</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
We have just published a new game where <strong>you have to figure out the secret
regular expression</strong>. Try it out, you might be surprised what you will find
there.
</p>
        <blockquote>
          <p>
            <a title="http://www.rise4fun.com/Rex" href="http://www.rise4fun.com/Rex">
              <strong>http://www.rise4fun.com/Rex</strong>
            </a>
          </p>
        </blockquote>
        <img width="0" height="0" src="http://blog.dotnetwiki.org/aggbug.ashx?id=39724688-2779-4b2c-87b6-a4bc5b007d9c" />
      </body>
      <title>How good are you with Regexes? Try http://rise4fun.com/rex</title>
      <guid isPermaLink="false">http://blog.dotnetwiki.org/PermaLink,guid,39724688-2779-4b2c-87b6-a4bc5b007d9c.aspx</guid>
      <link>http://blog.dotnetwiki.org/2010/10/28/HowGoodAreYouWithRegexesTryHttprise4funcomrex.aspx</link>
      <pubDate>Thu, 28 Oct 2010 06:15:17 GMT</pubDate>
      <description>&lt;p&gt;
We have just published a new game where &lt;strong&gt;you have to figure out the secret
regular expression&lt;/strong&gt;. Try it out, you might be surprised what you will find
there.
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&lt;a title="http://www.rise4fun.com/Rex" href="http://www.rise4fun.com/Rex"&gt;&lt;strong&gt;http://www.rise4fun.com/Rex&lt;/strong&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;/blockquote&gt;&lt;img width="0" height="0" src="http://blog.dotnetwiki.org/aggbug.ashx?id=39724688-2779-4b2c-87b6-a4bc5b007d9c" /&gt;</description>
      <comments>http://blog.dotnetwiki.org/CommentView,guid,39724688-2779-4b2c-87b6-a4bc5b007d9c.aspx</comments>
      <category>Rex</category>
      <category>RiSE</category>
    </item>
    <item>
      <trackback:ping>http://blog.dotnetwiki.org/Trackback.aspx?guid=6974e3a7-204a-4617-ae4f-25fcb47a78a0</trackback:ping>
      <pingback:server>http://blog.dotnetwiki.org/pingback.aspx</pingback:server>
      <pingback:target>http://blog.dotnetwiki.org/PermaLink,guid,6974e3a7-204a-4617-ae4f-25fcb47a78a0.aspx</pingback:target>
      <dc:creator>Jonathan de Halleux</dc:creator>
      <wfw:comment>http://blog.dotnetwiki.org/CommentView,guid,6974e3a7-204a-4617-ae4f-25fcb47a78a0.aspx</wfw:comment>
      <wfw:commentRss>http://blog.dotnetwiki.org/SyndicationService.asmx/GetEntryCommentsRss?guid=6974e3a7-204a-4617-ae4f-25fcb47a78a0</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://research.microsoft.com/en-us/people/nikolait/">Nikolai Tillmann</a> announced
it on <a href="http://www.facebook.com/pages/Pex-and-Moles/118276281518833">our page</a>,
he just finished integrating <a href="http://research.microsoft.com/rex">Rex</a> in
to <a href="http://research.microsoft.com/pex/">Pex</a>….
</p>
        <img width="0" height="0" src="http://blog.dotnetwiki.org/aggbug.ashx?id=6974e3a7-204a-4617-ae4f-25fcb47a78a0" />
      </body>
      <title>Rex integrates Pex</title>
      <guid isPermaLink="false">http://blog.dotnetwiki.org/PermaLink,guid,6974e3a7-204a-4617-ae4f-25fcb47a78a0.aspx</guid>
      <link>http://blog.dotnetwiki.org/2010/05/17/RexIntegratesPex.aspx</link>
      <pubDate>Mon, 17 May 2010 04:55:16 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://research.microsoft.com/en-us/people/nikolait/"&gt;Nikolai Tillmann&lt;/a&gt; announced
it on &lt;a href="http://www.facebook.com/pages/Pex-and-Moles/118276281518833"&gt;our page&lt;/a&gt;,
he just finished integrating &lt;a href="http://research.microsoft.com/rex"&gt;Rex&lt;/a&gt; in
to &lt;a href="http://research.microsoft.com/pex/"&gt;Pex&lt;/a&gt;….
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.dotnetwiki.org/aggbug.ashx?id=6974e3a7-204a-4617-ae4f-25fcb47a78a0" /&gt;</description>
      <comments>http://blog.dotnetwiki.org/CommentView,guid,6974e3a7-204a-4617-ae4f-25fcb47a78a0.aspx</comments>
      <category>Pex</category>
      <category>RiSE</category>
    </item>
    <item>
      <trackback:ping>http://blog.dotnetwiki.org/Trackback.aspx?guid=c836537a-e97c-486e-8317-63b3ba9795a1</trackback:ping>
      <pingback:server>http://blog.dotnetwiki.org/pingback.aspx</pingback:server>
      <pingback:target>http://blog.dotnetwiki.org/PermaLink,guid,c836537a-e97c-486e-8317-63b3ba9795a1.aspx</pingback:target>
      <dc:creator>Jonathan de Halleux</dc:creator>
      <wfw:comment>http://blog.dotnetwiki.org/CommentView,guid,c836537a-e97c-486e-8317-63b3ba9795a1.aspx</wfw:comment>
      <wfw:commentRss>http://blog.dotnetwiki.org/SyndicationService.asmx/GetEntryCommentsRss?guid=c836537a-e97c-486e-8317-63b3ba9795a1</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Picture-in-Picture is a very cool feature of <a href="http://www.techsmith.com/camtasia.asp" target="_blank">Camtasia</a> that
allows to embed a movie stream into a screencast. It makes the screencast more lively
while keeping a perfect quality of the computer screen. You've seen this kind of screencast
all over the place on <a href="http://channel9.msdn.com/" target="_blank">Channel9</a>.
Unfortunately, this feature was limited for screen recording and whiteboard session
would never look that good since we had to zoom in and out to capture… not anymore.
</p>
        <p>
We invested in an <a href="http://www.e-beam.com/" target="_blank">eBeam device</a> that
can capture the pen strokes on any whiteboard and display them on the computer. <strong>Using
this device, we can do Picture-in-Picture for Whiteboard recordings!</strong> Using
that device, we use the following setup: a camera on a tripod to record the person
on the whiteboard, the eBeam capture software running and Camtasia recording the computer
screen. The first result of this experiment is <a href="http://channel9.msdn.com/posts/Peli/The-Verification-Corner-Loop-Invariants/">the
first episode of a new show</a>, <a href="http://research.microsoft.com/en-us/projects/verificationcorner/" target="_blank">The
Verification Corner</a>, where Rustan Leino explains Loop Invariants. The other benefit
of recording the whiteboard is that you get a hard copy out it. If you go to the <a href="http://channel9.msdn.com/posts/Peli/The-Verification-Corner-Loop-Invariants/">Channel9</a> page,
you’ll see that you can also download a .pdf or .pptx of all the whiteboard that Rustan
wrote during the session… Go check it out and tell us what you think…
</p>
        <p>
          <a href="http://research.microsoft.com/en-us/projects/verificationcorner/">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/PictureinPictureforWhiteboardmovieswithe_5A0/image_5.png" width="679" height="573" />
          </a>
        </p>
        <img width="0" height="0" src="http://blog.dotnetwiki.org/aggbug.ashx?id=c836537a-e97c-486e-8317-63b3ba9795a1" />
      </body>
      <title>Picture-in-Picture for Whiteboard movies with eBeam</title>
      <guid isPermaLink="false">http://blog.dotnetwiki.org/PermaLink,guid,c836537a-e97c-486e-8317-63b3ba9795a1.aspx</guid>
      <link>http://blog.dotnetwiki.org/2010/01/12/PictureinPictureForWhiteboardMoviesWithEBeam.aspx</link>
      <pubDate>Tue, 12 Jan 2010 08:24:51 GMT</pubDate>
      <description>&lt;p&gt;
Picture-in-Picture is a very cool feature of &lt;a href="http://www.techsmith.com/camtasia.asp" target="_blank"&gt;Camtasia&lt;/a&gt; that
allows to embed a movie stream into a screencast. It makes the screencast more lively
while keeping a perfect quality of the computer screen. You've seen this kind of screencast
all over the place on &lt;a href="http://channel9.msdn.com/" target="_blank"&gt;Channel9&lt;/a&gt;.
Unfortunately, this feature was limited for screen recording and whiteboard session
would never look that good since we had to zoom in and out to capture… not anymore.
&lt;/p&gt;
&lt;p&gt;
We invested in an &lt;a href="http://www.e-beam.com/" target="_blank"&gt;eBeam device&lt;/a&gt; that
can capture the pen strokes on any whiteboard and display them on the computer. &lt;strong&gt;Using
this device, we can do Picture-in-Picture for Whiteboard recordings!&lt;/strong&gt; Using
that device, we use the following setup: a camera on a tripod to record the person
on the whiteboard, the eBeam capture software running and Camtasia recording the computer
screen. The first result of this experiment is &lt;a href="http://channel9.msdn.com/posts/Peli/The-Verification-Corner-Loop-Invariants/"&gt;the
first episode of a new show&lt;/a&gt;, &lt;a href="http://research.microsoft.com/en-us/projects/verificationcorner/" target="_blank"&gt;The
Verification Corner&lt;/a&gt;, where Rustan Leino explains Loop Invariants. The other benefit
of recording the whiteboard is that you get a hard copy out it. If you go to the &lt;a href="http://channel9.msdn.com/posts/Peli/The-Verification-Corner-Loop-Invariants/"&gt;Channel9&lt;/a&gt; page,
you’ll see that you can also download a .pdf or .pptx of all the whiteboard that Rustan
wrote during the session… Go check it out and tell us what you think…
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://research.microsoft.com/en-us/projects/verificationcorner/"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/PictureinPictureforWhiteboardmovieswithe_5A0/image_5.png" width="679" height="573"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.dotnetwiki.org/aggbug.ashx?id=c836537a-e97c-486e-8317-63b3ba9795a1" /&gt;</description>
      <comments>http://blog.dotnetwiki.org/CommentView,guid,c836537a-e97c-486e-8317-63b3ba9795a1.aspx</comments>
      <category>Channel9</category>
      <category>RiSE</category>
    </item>
    <item>
      <trackback:ping>http://blog.dotnetwiki.org/Trackback.aspx?guid=18226b58-0d8f-484e-a07d-12f3ebae8c1e</trackback:ping>
      <pingback:server>http://blog.dotnetwiki.org/pingback.aspx</pingback:server>
      <pingback:target>http://blog.dotnetwiki.org/PermaLink,guid,18226b58-0d8f-484e-a07d-12f3ebae8c1e.aspx</pingback:target>
      <dc:creator>Jonathan de Halleux</dc:creator>
      <wfw:comment>http://blog.dotnetwiki.org/CommentView,guid,18226b58-0d8f-484e-a07d-12f3ebae8c1e.aspx</wfw:comment>
      <wfw:commentRss>http://blog.dotnetwiki.org/SyndicationService.asmx/GetEntryCommentsRss?guid=18226b58-0d8f-484e-a07d-12f3ebae8c1e</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
We just made a <a href="http://research.microsoft.com/pex/downloads.aspx">quick release</a> to
fix another installer issue related to missing packages. Along the way, we’ve added
an <strong>Exploration Tree View</strong> and <strong>Partial Stubs</strong> support.
</p>
        <p>
          <strong>Exploration Tree View</strong>
        </p>
        <p>
The exploration tree view displays the list of explorations to be executed, running
and finished. It serves as a progress indicator but also as a smooth result explorer.
When browsing through the tree, <a href="http://research.microsoft.com/pex" target="_blank">Pex</a> will
synchronize the exploration result view and the tree view.
</p>
        <p>
The tree view populates each namespace with the fixture types and exploration methods,
and provide a visual feedback on the progress of Pex.
</p>
        <p>
          <a href="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/Pex0.12.404ExplorationTreeViewPartialSt_D1CB/image_4.png">
            <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/Pex0.12.404ExplorationTreeViewPartialSt_D1CB/image_thumb_1.png" width="390" height="363" />
          </a>
        </p>
        <p>
When you browse through the exploration and generated test nodes, Pex automatically
synchronizes the exploration result display. This makes it really easy to start from
an high-level view of the failures and drill into a particular generated test, with
stack trace and parameter table.
</p>
        <p>
          <a href="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/Pex0.12.404ExplorationTreeViewPartialSt_D1CB/image_2.png">
            <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/Pex0.12.404ExplorationTreeViewPartialSt_D1CB/image_thumb.png" width="604" height="212" />
          </a>
        </p>
        <p>
          <strong>
          </strong>
        </p>
        <p>
          <strong>Partial Stubs</strong>
        </p>
        <p>
Stubs lets you call the base class implementation of methods as a fallback behavior.
This functionality is commonly referred as <a href="http://ayende.com/Wiki/Default.aspx?Page=Rhino+Mocks+Partial+Mocks">Partial
Mocks</a> or Partial Stubs and is useful to test abstract classes in isolation. Stubs
inheriting from classes have a “CallBase” property that can turn this mode on and
off.
</p>
        <p>
Let see this with the <a href="http://ayende.com/Wiki/Default.aspx?Page=Rhino+Mocks+Partial+Mocks">RhinoMocks
example on partial mocks</a>. Given an abstract ProcessorBase class,
</p>
        <p>
          <a href="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/Pex0.12.404ExplorationTreeViewPartialSt_D1CB/image_10.png">
            <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/Pex0.12.404ExplorationTreeViewPartialSt_D1CB/image_thumb_4.png" width="337" height="207" />
          </a>
        </p>
        <p>
we write a test for the Inc method. To do so, we provide a stub implementation of
Add that simply increment a counter.
</p>
        <p>
          <a href="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/Pex0.12.404ExplorationTreeViewPartialSt_D1CB/image_8.png">
            <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/Pex0.12.404ExplorationTreeViewPartialSt_D1CB/image_thumb_3.png" width="558" height="210" />
          </a>
        </p>
        <p>
          <strong>Miscellaneous</strong>
        </p>
        <ul>
          <li>
PexAssume/PexAssert.EnumIsDefine checks that a particular value is defined in an enum. 
</li>
          <li>
Missing OpenMP files in the installer break Pex.</li>
        </ul>
        <p>
          <strong>
          </strong>
        </p>
        <p>
          <strong>Poll:</strong> should we skip 0.13 and go straight for 0.14? :)
</p>
        <img width="0" height="0" src="http://blog.dotnetwiki.org/aggbug.ashx?id=18226b58-0d8f-484e-a07d-12f3ebae8c1e" />
      </body>
      <title>Pex 0.12.40430.3 : Exploration Tree View, Partial Stubs…</title>
      <guid isPermaLink="false">http://blog.dotnetwiki.org/PermaLink,guid,18226b58-0d8f-484e-a07d-12f3ebae8c1e.aspx</guid>
      <link>http://blog.dotnetwiki.org/2009/05/01/Pex012404303ExplorationTreeViewPartialStubs.aspx</link>
      <pubDate>Fri, 01 May 2009 20:28:25 GMT</pubDate>
      <description>&lt;p&gt;
We just made a &lt;a href="http://research.microsoft.com/pex/downloads.aspx"&gt;quick release&lt;/a&gt; to
fix another installer issue related to missing packages. Along the way, we’ve added
an &lt;strong&gt;Exploration Tree View&lt;/strong&gt; and &lt;strong&gt;Partial Stubs&lt;/strong&gt; support.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Exploration Tree View&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
The exploration tree view displays the list of explorations to be executed, running
and finished. It serves as a progress indicator but also as a smooth result explorer.
When browsing through the tree, &lt;a href="http://research.microsoft.com/pex" target="_blank"&gt;Pex&lt;/a&gt; will
synchronize the exploration result view and the tree view.
&lt;/p&gt;
&lt;p&gt;
The tree view populates each namespace with the fixture types and exploration methods,
and provide a visual feedback on the progress of Pex.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/Pex0.12.404ExplorationTreeViewPartialSt_D1CB/image_4.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/Pex0.12.404ExplorationTreeViewPartialSt_D1CB/image_thumb_1.png" width="390" height="363" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
When you browse through the exploration and generated test nodes, Pex automatically
synchronizes the exploration result display. This makes it really easy to start from
an high-level view of the failures and drill into a particular generated test, with
stack trace and parameter table.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/Pex0.12.404ExplorationTreeViewPartialSt_D1CB/image_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/Pex0.12.404ExplorationTreeViewPartialSt_D1CB/image_thumb.png" width="604" height="212" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Partial Stubs&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Stubs lets you call the base class implementation of methods as a fallback behavior.
This functionality is commonly referred as &lt;a href="http://ayende.com/Wiki/Default.aspx?Page=Rhino+Mocks+Partial+Mocks"&gt;Partial
Mocks&lt;/a&gt; or Partial Stubs and is useful to test abstract classes in isolation. Stubs
inheriting from classes have a “CallBase” property that can turn this mode on and
off.
&lt;/p&gt;
&lt;p&gt;
Let see this with the &lt;a href="http://ayende.com/Wiki/Default.aspx?Page=Rhino+Mocks+Partial+Mocks"&gt;RhinoMocks
example on partial mocks&lt;/a&gt;. Given an abstract ProcessorBase class,
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/Pex0.12.404ExplorationTreeViewPartialSt_D1CB/image_10.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/Pex0.12.404ExplorationTreeViewPartialSt_D1CB/image_thumb_4.png" width="337" height="207" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
we write a test for the Inc method. To do so, we provide a stub implementation of
Add that simply increment a counter.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/Pex0.12.404ExplorationTreeViewPartialSt_D1CB/image_8.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/Pex0.12.404ExplorationTreeViewPartialSt_D1CB/image_thumb_3.png" width="558" height="210" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Miscellaneous&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
PexAssume/PexAssert.EnumIsDefine checks that a particular value is defined in an enum. 
&lt;/li&gt;
&lt;li&gt;
Missing OpenMP files in the installer break Pex.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Poll:&lt;/strong&gt; should we skip 0.13 and go straight for 0.14? :)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.dotnetwiki.org/aggbug.ashx?id=18226b58-0d8f-484e-a07d-12f3ebae8c1e" /&gt;</description>
      <comments>http://blog.dotnetwiki.org/CommentView,guid,18226b58-0d8f-484e-a07d-12f3ebae8c1e.aspx</comments>
      <category>Pex</category>
      <category>RiSE</category>
      <category>Stubs</category>
      <category>Testing</category>
    </item>
    <item>
      <trackback:ping>http://blog.dotnetwiki.org/Trackback.aspx?guid=3f0e2745-a604-4772-a81d-bf7d75faa21a</trackback:ping>
      <pingback:server>http://blog.dotnetwiki.org/pingback.aspx</pingback:server>
      <pingback:target>http://blog.dotnetwiki.org/PermaLink,guid,3f0e2745-a604-4772-a81d-bf7d75faa21a.aspx</pingback:target>
      <dc:creator>Jonathan de Halleux</dc:creator>
      <wfw:comment>http://blog.dotnetwiki.org/CommentView,guid,3f0e2745-a604-4772-a81d-bf7d75faa21a.aspx</wfw:comment>
      <wfw:commentRss>http://blog.dotnetwiki.org/SyndicationService.asmx/GetEntryCommentsRss?guid=3f0e2745-a604-4772-a81d-bf7d75faa21a</wfw:commentRss>
      <slash:comments>5</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">Nikolai just announced the latest drop
of <a href="http://research.microsoft.com/pex" target="_blank">Pex</a>, 0.11.40421.0.
Get <a href="http://blogs.msdn.com/nikolait/archive/2009/04/21/pex-0-11-released-delegates-exception-trees-and-stubs.aspx" target="_blank">all
the details</a> on his blog.<img width="0" height="0" src="http://blog.dotnetwiki.org/aggbug.ashx?id=3f0e2745-a604-4772-a81d-bf7d75faa21a" /></body>
      <title>Pex v0.11.40421.0 : Delegates As Parameters, Exception Tree View, Better Stubs.</title>
      <guid isPermaLink="false">http://blog.dotnetwiki.org/PermaLink,guid,3f0e2745-a604-4772-a81d-bf7d75faa21a.aspx</guid>
      <link>http://blog.dotnetwiki.org/2009/04/22/PexV011404210DelegatesAsParametersExceptionTreeViewBetterStubs.aspx</link>
      <pubDate>Wed, 22 Apr 2009 00:10:17 GMT</pubDate>
      <description>Nikolai just announced the latest drop of &lt;a href="http://research.microsoft.com/pex" target="_blank"&gt;Pex&lt;/a&gt;,
0.11.40421.0. Get &lt;a href="http://blogs.msdn.com/nikolait/archive/2009/04/21/pex-0-11-released-delegates-exception-trees-and-stubs.aspx" target="_blank"&gt;all
the details&lt;/a&gt; on his blog.&lt;img width="0" height="0" src="http://blog.dotnetwiki.org/aggbug.ashx?id=3f0e2745-a604-4772-a81d-bf7d75faa21a" /&gt;</description>
      <comments>http://blog.dotnetwiki.org/CommentView,guid,3f0e2745-a604-4772-a81d-bf7d75faa21a.aspx</comments>
      <category>Pex</category>
      <category>RiSE</category>
      <category>Stubs</category>
    </item>
    <item>
      <trackback:ping>http://blog.dotnetwiki.org/Trackback.aspx?guid=613f853f-19ed-4482-af6f-685ed1876096</trackback:ping>
      <pingback:server>http://blog.dotnetwiki.org/pingback.aspx</pingback:server>
      <pingback:target>http://blog.dotnetwiki.org/PermaLink,guid,613f853f-19ed-4482-af6f-685ed1876096.aspx</pingback:target>
      <dc:creator>Jonathan de Halleux</dc:creator>
      <wfw:comment>http://blog.dotnetwiki.org/CommentView,guid,613f853f-19ed-4482-af6f-685ed1876096.aspx</wfw:comment>
      <wfw:commentRss>http://blog.dotnetwiki.org/SyndicationService.asmx/GetEntryCommentsRss?guid=613f853f-19ed-4482-af6f-685ed1876096</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
For the last couple of weeks, I given on helping hand to Herman Venter to set up the
open-source-MS-PL-super-cool-Common Compiler Infrastructure (<a href="http://ccimetadata.codeplex.com/" target="_blank">CCI</a>)
project. 
</p>
        <p>
You’ve may have heard and probably used different incarnations of the CCI in the past:
the FxCop introspection engine, <a href="http://research.microsoft.com/en-us/people/mbarnett/ilmerge.aspx" target="_blank">ILMerge</a>, <a href="http://research.microsoft.com/en-us/projects/specsharp/" target="_blank">Spec#</a> or
Code <a href="http://research.microsoft.com/contracts" target="_blank">Contracts</a> use
CCI in same ways. CCI is a set of tools and components that are useful to build compilers:
readers and writers for MSIL and symbol files, and more. With CCI, you can now <em>easily</em> write
your own crazy aspect oriented programming framework, inspect assemblies without reflection
etc…  Just sync the sources, build it, tweak it, etc… It’s all there on <a href="http://ccimetadata.codeplex.com/" target="_blank">codeplex</a> at <a href="http://ccimetadata.codeplex.com">http://ccimetadata.codeplex.com</a>.
</p>
        <img width="0" height="0" src="http://blog.dotnetwiki.org/aggbug.ashx?id=613f853f-19ed-4482-af6f-685ed1876096" />
      </body>
      <title>Read, morph, tweak, write MSIL with CCI (open source)</title>
      <guid isPermaLink="false">http://blog.dotnetwiki.org/PermaLink,guid,613f853f-19ed-4482-af6f-685ed1876096.aspx</guid>
      <link>http://blog.dotnetwiki.org/2009/04/16/ReadMorphTweakWriteMSILWithCCIOpenSource.aspx</link>
      <pubDate>Thu, 16 Apr 2009 03:51:23 GMT</pubDate>
      <description>&lt;p&gt;
For the last couple of weeks, I given on helping hand to Herman Venter to set up the
open-source-MS-PL-super-cool-Common Compiler Infrastructure (&lt;a href="http://ccimetadata.codeplex.com/" target="_blank"&gt;CCI&lt;/a&gt;)
project. 
&lt;/p&gt;
&lt;p&gt;
You’ve may have heard and probably used different incarnations of the CCI in the past:
the FxCop introspection engine, &lt;a href="http://research.microsoft.com/en-us/people/mbarnett/ilmerge.aspx" target="_blank"&gt;ILMerge&lt;/a&gt;, &lt;a href="http://research.microsoft.com/en-us/projects/specsharp/" target="_blank"&gt;Spec#&lt;/a&gt; or
Code &lt;a href="http://research.microsoft.com/contracts" target="_blank"&gt;Contracts&lt;/a&gt; use
CCI in same ways. CCI is a set of tools and components that are useful to build compilers:
readers and writers for MSIL and symbol files, and more. With CCI, you can now &lt;em&gt;easily&lt;/em&gt; write
your own crazy aspect oriented programming framework, inspect assemblies without reflection
etc…&amp;#160; Just sync the sources, build it, tweak it, etc… It’s all there on &lt;a href="http://ccimetadata.codeplex.com/" target="_blank"&gt;codeplex&lt;/a&gt; at &lt;a href="http://ccimetadata.codeplex.com"&gt;http://ccimetadata.codeplex.com&lt;/a&gt;.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.dotnetwiki.org/aggbug.ashx?id=613f853f-19ed-4482-af6f-685ed1876096" /&gt;</description>
      <comments>http://blog.dotnetwiki.org/CommentView,guid,613f853f-19ed-4482-af6f-685ed1876096.aspx</comments>
      <category>CCI</category>
      <category>Code Contracts</category>
      <category>RiSE</category>
    </item>
    <item>
      <trackback:ping>http://blog.dotnetwiki.org/Trackback.aspx?guid=83fde01f-786e-456d-b1c4-c8dd52448e69</trackback:ping>
      <pingback:server>http://blog.dotnetwiki.org/pingback.aspx</pingback:server>
      <pingback:target>http://blog.dotnetwiki.org/PermaLink,guid,83fde01f-786e-456d-b1c4-c8dd52448e69.aspx</pingback:target>
      <dc:creator>Jonathan de Halleux</dc:creator>
      <wfw:comment>http://blog.dotnetwiki.org/CommentView,guid,83fde01f-786e-456d-b1c4-c8dd52448e69.aspx</wfw:comment>
      <wfw:commentRss>http://blog.dotnetwiki.org/SyndicationService.asmx/GetEntryCommentsRss?guid=83fde01f-786e-456d-b1c4-c8dd52448e69</wfw:commentRss>
      <slash:comments>12</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <blockquote>
          <p>
            <a href="http://research.microsoft.com/en-us/projects/pex/downloads.aspx" target="_blank">
              <strong>Download
the new version!</strong>
            </a>
          </p>
        </blockquote>
        <p>
Today we’ve released a new release of <a href="http://research.microsoft.com/pex">Pex</a> on
DevLabs and on our academic downloads. This highlights of this release are: <a href="http://www.nunit.org" target="_blank">NUnit</a>, <a href="http://www.mbunit.com/" target="_blank">MbUnit</a> and <a href="http://xunit.codeplex.com/" target="_blank">xUnit.net</a> support
out of the box, <strong>writing <a href="http://research.microsoft.com/pex">parameterized
unit tests</a> in VisualBasic.NET and F#, better <a href="http://research.microsoft.com/contracts">Code
Contracts</a> support</strong>. As always, if we encourage you to send us feedback,
bugs, stories on our forums at <a href="http://social.msdn.microsoft.com/Forums/en-US/pex/threads/">http://social.msdn.microsoft.com/Forums/en-US/pex/threads/</a> .
</p>
        <p>
          <strong>
            <a href="http://www.nunit.org" target="_blank">NUnit</a>, <a href="http://www.mbunit.com" target="_blank">MbUnit</a> and <a href="http://www.codeplex.com/xunit">xUnit.net</a> supported
out of the box</strong>
        </p>
        <p>
Pex now supports MSTest, NUnit, MbUnit and xUnit.net out of the box. Pex will automatically
detect which framework you are using by inspecting the assembly reference list, and
automatically save the generated tests decorated with the correct attributes for that
framework. 
</p>
        <p>
          <a href="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/Pexv0.10.40408.0NUnitMbUnitx.NETFandmore_14623/image_22.png">
            <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/Pexv0.10.40408.0NUnitMbUnitx.NETFandmore_14623/image_thumb_10.png" width="604" height="351" />
          </a>
        </p>
        <p>
The default test framework can also be specified through the global options (Tools
–&gt; Options –&gt; Pex –&gt; enter the test framework name in TestFramework).
</p>
        <p>
          <a href="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/Pexv0.10.40408.0NUnitMbUnitx.NETFandmore_14623/image_16.png">
            <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/Pexv0.10.40408.0NUnitMbUnitx.NETFandmore_14623/image_thumb_7.png" width="604" height="257" />
          </a>
        </p>
        <p>
 
</p>
        <p>
          <strong>Writing Parameterized Unit Tests in VisualBasic.NET</strong>
        </p>
        <p>
While the Pex white box analysis engine works at the MSIL level, Pex only emits C#
code for now. In previous releases, this limitation made it impossible to use Pex
parameterized unit tests from non-C# code. In this release, we have worked around
this problem by automatically saving the generated tests in a ‘satellite’ C# project.
</p>
        <p>
Let’s see this with an example. The screenshot below shows a single VisualBasic.NET
test project with a Pex parameterized unit test:
</p>
        <p>
          <a href="file:///C:\Users\jhalleux\AppData\Local\Temp\WindowsLiveWriter-429641856\supfiles659CA51\image3.png">
            <b>
              <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/Pexv0.10.40408.0NUnitMbUnitx.NETFandmore_14623/clip_image002_0dd1c4a7-6732-42b8-b6fe-76f7499e6a66.gif" width="604" height="237" />
            </b>
          </a>
        </p>
        <p>
We can right-click in the HelloTest.Hello method and select “Run Pex Explorations”:
</p>
        <p>
          <a href="file:///C:\Users\jhalleux\AppData\Local\Temp\WindowsLiveWriter-429641856\supfiles659CA51\image7.png">
            <b>
              <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image004" border="0" alt="clip_image004" src="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/Pexv0.10.40408.0NUnitMbUnitx.NETFandmore_14623/clip_image004_31e0ecca-a518-4ec3-9ad4-3fef0bb58593.gif" width="305" height="91" />
            </b>
          </a>
        </p>
        <p>
At this point, Pex will start exploring the test in the background as usual. This
is where the new support comes in: When a generated test comes back to Visual Studio,
Pex will save it in a separate C# project automatically (after asking you where to
drop the new project):
</p>
        <p>
          <a href="file:///C:\Users\jhalleux\AppData\Local\Temp\WindowsLiveWriter-429641856\supfiles659CA51\image19.png">
            <b>
              <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image006" border="0" alt="clip_image006" src="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/Pexv0.10.40408.0NUnitMbUnitx.NETFandmore_14623/clip_image006_324456a0-a756-4cfe-b9cb-e7eb8a9db8a0.gif" width="604" height="391" />
            </b>
          </a>
        </p>
        <p>
The generated tests are now ready to be run just as any other unit tests!
</p>
        <p>
          <strong>Writing Parameterized Unit Tests from F#</strong>
        </p>
        <p>
Similarly to VisualBasic.NET, we’ve made improvements in our infrastructure to enable
writing parameterized unit tests in <strong>F#</strong>. Let’s see this with a familiar
example. We have a single F# library that has xUnit.net unit tests and reference Microsoft.Pex.Framework
(project Library2 below). In that project, we add a parameterized unit test (hello_test):
</p>
        <p>
          <a href="file:///C:\Users\jhalleux\AppData\Local\Temp\WindowsLiveWriter-429641856\supfiles659CA51\image32%5b1%5d.png">
            <b>
              <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image008" border="0" alt="clip_image008" src="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/Pexv0.10.40408.0NUnitMbUnitx.NETFandmore_14623/clip_image008_709d95c3-12c4-4805-b549-2982d5341032.gif" width="604" height="235" />
            </b>
          </a>
        </p>
        <p>
We can right-click on the <strong>test method name</strong> and Pex will start the
exploration of that test in the background. Because of the limitations of the F# project
system, you <strong>absolutely</strong> need to right-click on the<strong> method
name</strong> in F# if you want contextual test selection to work. Because the project
is already referencing xunit.dll, Pex will also automatically detect that you are
using xUnit.net and use that framework. When the first test case comes back to VisualStudio,
Pex saves it in a separate C# project:
</p>
        <p>
          <a href="file:///C:\Users\jhalleux\AppData\Local\Temp\WindowsLiveWriter-429641856\supfiles659CA51\image39.png">
            <b>
              <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image010" border="0" alt="clip_image010" src="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/Pexv0.10.40408.0NUnitMbUnitx.NETFandmore_14623/clip_image010_69f5c0e9-4c03-4251-a79a-38c7ffbb3a19.gif" width="604" height="341" />
            </b>
          </a>
        </p>
        <p>
The tests are saved in the generated test project and ready to be run by your favorite
test runner!
</p>
        <p>
          <strong>PexObserve: Observing values, Asserting values</strong>
        </p>
        <p>
We’ve completely re-factored the way values can be logged on the table or saved as
assertions in the generated tests. The following example shows various ways to log
and assert values:
</p>
        <p>
          <a href="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/Pexv0.10.40408.0NUnitMbUnitx.NETFandmore_14623/image_8.png">
            <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/Pexv0.10.40408.0NUnitMbUnitx.NETFandmore_14623/image_thumb_3.png" width="451" height="228" />
          </a>
        </p>
        <p>
In the Observe method, we use the return value and out parameter output to automatically
log and assert those values. Additionally, we add “view input” on the fly to the parameter
table through the ValueForViewing method, and we add “check input” to be asserted
through the ValueAtEndOfTest method. After running Pex, we get the following results:
</p>
        <p>
          <a href="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/Pexv0.10.40408.0NUnitMbUnitx.NETFandmore_14623/image_10.png">
            <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/Pexv0.10.40408.0NUnitMbUnitx.NETFandmore_14623/image_thumb_4.png" width="373" height="63" />
          </a>
        </p>
        <p>
As expected, input, ‘view input’, output and result show up in the parameter table.
</p>
        <p>
          <a href="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/Pexv0.10.40408.0NUnitMbUnitx.NETFandmore_14623/image_12.png">
            <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/Pexv0.10.40408.0NUnitMbUnitx.NETFandmore_14623/image_thumb_5.png" width="599" height="266" />
          </a>
        </p>
        <p>
In the generated test, we see assertions for the return value, out parameters and
other values passed through the ValueAtEndOfTest method.
</p>
        <p>
          <strong>
            <a href="http://research.microsoft.com/contracts">Code Contracts</a> : Reproducible
generated tests</strong>
        </p>
        <p>
When Pex generates a unit test that relied on a runtime contract, Pex also adds a
check to the unit test which validates that the contracts have been injected into
the code by the contracts rewriter. If the code is not rewritten when re-executing
the unit test, it is marked as inconclusive. You will appreciate this behavior when
you run your unit tests both in Release and in Debug builds, which usually differ
in how contracts get injected.
</p>
        <p>
          <a href="file:///C:\Users\jhalleux\AppData\Local\Temp\WindowsLiveWriter-429641856\supfiles659CA51\image43.png">
            <b>
              <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image012" border="0" alt="clip_image012" src="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/Pexv0.10.40408.0NUnitMbUnitx.NETFandmore_14623/clip_image012_32c70deb-1184-48c7-a1cd-16e1c19559d3.gif" width="604" height="177" />
            </b>
          </a>
        </p>
        <p>
          <strong>Code Contracts:  Automatic filtering of the contract violations</strong>
        </p>
        <p>
When Pex generates a test that violates a Code Contract pre-condition (i.e. Contract.Requires),
there are basically two scenarios: the precondition was on top of the stack and should
be considered as an expected exception; or it is a nested exception and should be
considered as a bug. Pex provides a default exception filtering that implements this
behavior.
</p>
        <p>
          <strong>
            <a href="http://research.microsoft.com/stubs" target="_blank">Stubs</a>: simplified
syntax</strong>
        </p>
        <p>
We’ve considerably simplified the syntax of stubs by removing the ‘this’ parameter
from the stub delegate definition. Let’s illustrate this with a test that stubs the
‘ReadAllText’ method of a fictitious ‘IFileSystem’ interface.  
</p>
        <p>
          <img src="http://research.microsoft.com/en-us/projects/stubs/stubexample.png" />
        </p>
        <p>
          <strong>
            <a href="http://research.microsoft.com/stubs" target="_blank">Stubs</a>: generic
methods</strong>
        </p>
        <p>
The <a href="http://research.microsoft.com/stubs" target="_blank">Stubs</a> framework
now supports stubbing generic methods by providing particular instantiations of that
method. In the following example, the generic Bar&lt;T&gt; method is stubbed for the
particular Bar&lt;int&gt; instantiation:
</p>
        <p>
          <a href="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/Pexv0.10.40408.0NUnitMbUnitx.NETFandmore_14623/image_2.png">
            <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/Pexv0.10.40408.0NUnitMbUnitx.NETFandmore_14623/image_thumb.png" width="435" height="119" />
          </a>
        </p>
        <p>
          <strong>Stubs and Pex: Pex will choose the stubs behavior by default</strong>
        </p>
        <p>
We provide a new custom attribute, PexChooseAsStubFallbackBehaviorAttribute, that
hooks Pex choices to the Stub fallback behavior. To illustrate what this means, let’s
modify slightly the example above by removing the stub of ReadAllText:
</p>
        <p>
          <a href="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/Pexv0.10.40408.0NUnitMbUnitx.NETFandmore_14623/image_4.png">
            <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/Pexv0.10.40408.0NUnitMbUnitx.NETFandmore_14623/image_thumb_1.png" width="455" height="216" />
          </a>
        </p>
        <p>
If this test was to be run without the PexChooseAsStubFallbackBehavior attribute,
it would throw a StubNotImplementedException. However, with the PexChooseAsStubFallbackBehavior
attribute, the fallback behavior calls into PexChoose to ask Pex for a new string.
In this example in particular, on each call to ReadAllText, Pex will generate a new
string for the result. You can see this string as a new parameter to the parameterized
unit test. Therefore, when we run this test under Pex, we see different behavior happening,
including the “hello world” file:
</p>
        <p>
          <a href="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/Pexv0.10.40408.0NUnitMbUnitx.NETFandmore_14623/image_6.png">
            <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/Pexv0.10.40408.0NUnitMbUnitx.NETFandmore_14623/image_thumb_2.png" width="584" height="90" />
          </a>
        </p>
        <p>
Note that all the necessary attributes are added at the assembly level by the Pex
Wizard.
</p>
        <p>
          <strong>Miscellanous bug fixes and improvements</strong>
        </p>
        <ul>
          <li>
[fixed] Dialogs do not render correctly under high DPI 
</li>
          <li>
When a generic parameterized unit tests does not have any generic argument instantiations,
Pex makes a guess for you. 
</li>
          <li>
When a test parameter is an interface or an abstract class, Pex now searches the known
assemblies for implementations and concrete classes. In particular, that means that
Pex will often automatically use the automatically generated Stubs implementations
for interfaces or abstract classes. 
</li>
          <li>
Static parameterized unit tests are supported (if static tests are supported by your
test framework) 
</li>
          <li>
Better solving of decimal and floating point constraints. We will report on the details
later. 
</li>
        </ul>
        <p>
          <strong>Breaking Changes</strong>
        </p>
        <ul>
          <li>
The PexFactoryClassAttribute is no longer needed and has been removed. Now, Pex will
pick up object factory methods marked with the PexFactoryMethodAttribute from any <i>static
class</i> in the test project containing the parameterized unit tests. If the generated
tests are stored in a separate project, that project is not searched. 
</li>
          <li>
The PexStore API has been renamed to PexObserve. 
</li>
          <li>
Pex is compatible with Code Contracts versions strictly newer than v1.1.20309.13.
Unfortunately, v1.1.20309.13 is the currently available version of Code <a href="http://research.microsoft.com/contracts" target="_blank">Contracts</a>.
The Code Contracts team is planning on a release soon. 
</li>
        </ul>
        <p>
 
</p>
        <p>
Happy Pexing!
</p>
        <img width="0" height="0" src="http://blog.dotnetwiki.org/aggbug.ashx?id=83fde01f-786e-456d-b1c4-c8dd52448e69" />
      </body>
      <title>Pex v0.10.40408.0: NUnit, MbUnit, xUnit.Net, Visual Basic.NET, F# and more…</title>
      <guid isPermaLink="false">http://blog.dotnetwiki.org/PermaLink,guid,83fde01f-786e-456d-b1c4-c8dd52448e69.aspx</guid>
      <link>http://blog.dotnetwiki.org/2009/04/10/PexV010404080NUnitMbUnitXUnitNetVisualBasicNETFAndMore.aspx</link>
      <pubDate>Fri, 10 Apr 2009 19:06:31 GMT</pubDate>
      <description>&lt;blockquote&gt; 
&lt;p&gt;
&lt;a href="http://research.microsoft.com/en-us/projects/pex/downloads.aspx" target="_blank"&gt;&lt;strong&gt;Download
the new version!&lt;/strong&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
Today we’ve released a new release of &lt;a href="http://research.microsoft.com/pex"&gt;Pex&lt;/a&gt; on
DevLabs and on our academic downloads. This highlights of this release are: &lt;a href="http://www.nunit.org" target="_blank"&gt;NUnit&lt;/a&gt;, &lt;a href="http://www.mbunit.com/" target="_blank"&gt;MbUnit&lt;/a&gt; and &lt;a href="http://xunit.codeplex.com/" target="_blank"&gt;xUnit.net&lt;/a&gt; support
out of the box, &lt;strong&gt;writing &lt;a href="http://research.microsoft.com/pex"&gt;parameterized
unit tests&lt;/a&gt; in VisualBasic.NET and F#, better &lt;a href="http://research.microsoft.com/contracts"&gt;Code
Contracts&lt;/a&gt; support&lt;/strong&gt;. As always, if we encourage you to send us feedback,
bugs, stories on our forums at &lt;a href="http://social.msdn.microsoft.com/Forums/en-US/pex/threads/"&gt;http://social.msdn.microsoft.com/Forums/en-US/pex/threads/&lt;/a&gt; .
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;a href="http://www.nunit.org" target="_blank"&gt;NUnit&lt;/a&gt;, &lt;a href="http://www.mbunit.com" target="_blank"&gt;MbUnit&lt;/a&gt; and &lt;a href="http://www.codeplex.com/xunit"&gt;xUnit.net&lt;/a&gt; supported
out of the box&lt;/strong&gt; 
&lt;/p&gt;
&lt;p&gt;
Pex now supports MSTest, NUnit, MbUnit and xUnit.net out of the box. Pex will automatically
detect which framework you are using by inspecting the assembly reference list, and
automatically save the generated tests decorated with the correct attributes for that
framework. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/Pexv0.10.40408.0NUnitMbUnitx.NETFandmore_14623/image_22.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/Pexv0.10.40408.0NUnitMbUnitx.NETFandmore_14623/image_thumb_10.png" width="604" height="351" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
The default test framework can also be specified through the global options (Tools
–&amp;gt; Options –&amp;gt; Pex –&amp;gt; enter the test framework name in TestFramework).
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/Pexv0.10.40408.0NUnitMbUnitx.NETFandmore_14623/image_16.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/Pexv0.10.40408.0NUnitMbUnitx.NETFandmore_14623/image_thumb_7.png" width="604" height="257" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Writing Parameterized Unit Tests in VisualBasic.NET&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
While the Pex white box analysis engine works at the MSIL level, Pex only emits C#
code for now. In previous releases, this limitation made it impossible to use Pex
parameterized unit tests from non-C# code. In this release, we have worked around
this problem by automatically saving the generated tests in a ‘satellite’ C# project.
&lt;/p&gt;
&lt;p&gt;
Let’s see this with an example. The screenshot below shows a single VisualBasic.NET
test project with a Pex parameterized unit test:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="file:///C:\Users\jhalleux\AppData\Local\Temp\WindowsLiveWriter-429641856\supfiles659CA51\image3.png"&gt;&lt;b&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/Pexv0.10.40408.0NUnitMbUnitx.NETFandmore_14623/clip_image002_0dd1c4a7-6732-42b8-b6fe-76f7499e6a66.gif" width="604" height="237" /&gt;&lt;/b&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
We can right-click in the HelloTest.Hello method and select “Run Pex Explorations”:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="file:///C:\Users\jhalleux\AppData\Local\Temp\WindowsLiveWriter-429641856\supfiles659CA51\image7.png"&gt;&lt;b&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image004" border="0" alt="clip_image004" src="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/Pexv0.10.40408.0NUnitMbUnitx.NETFandmore_14623/clip_image004_31e0ecca-a518-4ec3-9ad4-3fef0bb58593.gif" width="305" height="91" /&gt;&lt;/b&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
At this point, Pex will start exploring the test in the background as usual. This
is where the new support comes in: When a generated test comes back to Visual Studio,
Pex will save it in a separate C# project automatically (after asking you where to
drop the new project):
&lt;/p&gt;
&lt;p&gt;
&lt;a href="file:///C:\Users\jhalleux\AppData\Local\Temp\WindowsLiveWriter-429641856\supfiles659CA51\image19.png"&gt;&lt;b&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image006" border="0" alt="clip_image006" src="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/Pexv0.10.40408.0NUnitMbUnitx.NETFandmore_14623/clip_image006_324456a0-a756-4cfe-b9cb-e7eb8a9db8a0.gif" width="604" height="391" /&gt;&lt;/b&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
The generated tests are now ready to be run just as any other unit tests!
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Writing Parameterized Unit Tests from F#&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Similarly to VisualBasic.NET, we’ve made improvements in our infrastructure to enable
writing parameterized unit tests in &lt;strong&gt;F#&lt;/strong&gt;. Let’s see this with a familiar
example. We have a single F# library that has xUnit.net unit tests and reference Microsoft.Pex.Framework
(project Library2 below). In that project, we add a parameterized unit test (hello_test):
&lt;/p&gt;
&lt;p&gt;
&lt;a href="file:///C:\Users\jhalleux\AppData\Local\Temp\WindowsLiveWriter-429641856\supfiles659CA51\image32%5b1%5d.png"&gt;&lt;b&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image008" border="0" alt="clip_image008" src="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/Pexv0.10.40408.0NUnitMbUnitx.NETFandmore_14623/clip_image008_709d95c3-12c4-4805-b549-2982d5341032.gif" width="604" height="235" /&gt;&lt;/b&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
We can right-click on the &lt;strong&gt;test method name&lt;/strong&gt; and Pex will start the
exploration of that test in the background. Because of the limitations of the F# project
system, you &lt;strong&gt;absolutely&lt;/strong&gt; need to right-click on the&lt;strong&gt; method
name&lt;/strong&gt; in F# if you want contextual test selection to work. Because the project
is already referencing xunit.dll, Pex will also automatically detect that you are
using xUnit.net and use that framework. When the first test case comes back to VisualStudio,
Pex saves it in a separate C# project:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="file:///C:\Users\jhalleux\AppData\Local\Temp\WindowsLiveWriter-429641856\supfiles659CA51\image39.png"&gt;&lt;b&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image010" border="0" alt="clip_image010" src="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/Pexv0.10.40408.0NUnitMbUnitx.NETFandmore_14623/clip_image010_69f5c0e9-4c03-4251-a79a-38c7ffbb3a19.gif" width="604" height="341" /&gt;&lt;/b&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
The tests are saved in the generated test project and ready to be run by your favorite
test runner!
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;PexObserve: Observing values, Asserting values&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
We’ve completely re-factored the way values can be logged on the table or saved as
assertions in the generated tests. The following example shows various ways to log
and assert values:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/Pexv0.10.40408.0NUnitMbUnitx.NETFandmore_14623/image_8.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/Pexv0.10.40408.0NUnitMbUnitx.NETFandmore_14623/image_thumb_3.png" width="451" height="228" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
In the Observe method, we use the return value and out parameter output to automatically
log and assert those values. Additionally, we add “view input” on the fly to the parameter
table through the ValueForViewing method, and we add “check input” to be asserted
through the ValueAtEndOfTest method. After running Pex, we get the following results:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/Pexv0.10.40408.0NUnitMbUnitx.NETFandmore_14623/image_10.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/Pexv0.10.40408.0NUnitMbUnitx.NETFandmore_14623/image_thumb_4.png" width="373" height="63" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
As expected, input, ‘view input’, output and result show up in the parameter table.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/Pexv0.10.40408.0NUnitMbUnitx.NETFandmore_14623/image_12.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/Pexv0.10.40408.0NUnitMbUnitx.NETFandmore_14623/image_thumb_5.png" width="599" height="266" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
In the generated test, we see assertions for the return value, out parameters and
other values passed through the ValueAtEndOfTest method.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;a href="http://research.microsoft.com/contracts"&gt;Code Contracts&lt;/a&gt; : Reproducible
generated tests&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
When Pex generates a unit test that relied on a runtime contract, Pex also adds a
check to the unit test which validates that the contracts have been injected into
the code by the contracts rewriter. If the code is not rewritten when re-executing
the unit test, it is marked as inconclusive. You will appreciate this behavior when
you run your unit tests both in Release and in Debug builds, which usually differ
in how contracts get injected.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="file:///C:\Users\jhalleux\AppData\Local\Temp\WindowsLiveWriter-429641856\supfiles659CA51\image43.png"&gt;&lt;b&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image012" border="0" alt="clip_image012" src="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/Pexv0.10.40408.0NUnitMbUnitx.NETFandmore_14623/clip_image012_32c70deb-1184-48c7-a1cd-16e1c19559d3.gif" width="604" height="177" /&gt;&lt;/b&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Code Contracts:&amp;#160; Automatic filtering of the contract violations&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
When Pex generates a test that violates a Code Contract pre-condition (i.e. Contract.Requires),
there are basically two scenarios: the precondition was on top of the stack and should
be considered as an expected exception; or it is a nested exception and should be
considered as a bug. Pex provides a default exception filtering that implements this
behavior.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;a href="http://research.microsoft.com/stubs" target="_blank"&gt;Stubs&lt;/a&gt;: simplified
syntax&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
We’ve considerably simplified the syntax of stubs by removing the ‘this’ parameter
from the stub delegate definition. Let’s illustrate this with a test that stubs the
‘ReadAllText’ method of a fictitious ‘IFileSystem’ interface.&amp;#160; 
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://research.microsoft.com/en-us/projects/stubs/stubexample.png" /&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;a href="http://research.microsoft.com/stubs" target="_blank"&gt;Stubs&lt;/a&gt;: generic
methods&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
The &lt;a href="http://research.microsoft.com/stubs" target="_blank"&gt;Stubs&lt;/a&gt; framework
now supports stubbing generic methods by providing particular instantiations of that
method. In the following example, the generic Bar&amp;lt;T&amp;gt; method is stubbed for the
particular Bar&amp;lt;int&amp;gt; instantiation:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/Pexv0.10.40408.0NUnitMbUnitx.NETFandmore_14623/image_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/Pexv0.10.40408.0NUnitMbUnitx.NETFandmore_14623/image_thumb.png" width="435" height="119" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Stubs and Pex: Pex will choose the stubs behavior by default&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
We provide a new custom attribute, PexChooseAsStubFallbackBehaviorAttribute, that
hooks Pex choices to the Stub fallback behavior. To illustrate what this means, let’s
modify slightly the example above by removing the stub of ReadAllText:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/Pexv0.10.40408.0NUnitMbUnitx.NETFandmore_14623/image_4.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/Pexv0.10.40408.0NUnitMbUnitx.NETFandmore_14623/image_thumb_1.png" width="455" height="216" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
If this test was to be run without the PexChooseAsStubFallbackBehavior attribute,
it would throw a StubNotImplementedException. However, with the PexChooseAsStubFallbackBehavior
attribute, the fallback behavior calls into PexChoose to ask Pex for a new string.
In this example in particular, on each call to ReadAllText, Pex will generate a new
string for the result. You can see this string as a new parameter to the parameterized
unit test. Therefore, when we run this test under Pex, we see different behavior happening,
including the “hello world” file:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/Pexv0.10.40408.0NUnitMbUnitx.NETFandmore_14623/image_6.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blog.dotnetwiki.org/content/binary/WindowsLiveWriter/Pexv0.10.40408.0NUnitMbUnitx.NETFandmore_14623/image_thumb_2.png" width="584" height="90" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Note that all the necessary attributes are added at the assembly level by the Pex
Wizard.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Miscellanous bug fixes and improvements&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
[fixed] Dialogs do not render correctly under high DPI 
&lt;/li&gt;
&lt;li&gt;
When a generic parameterized unit tests does not have any generic argument instantiations,
Pex makes a guess for you. 
&lt;/li&gt;
&lt;li&gt;
When a test parameter is an interface or an abstract class, Pex now searches the known
assemblies for implementations and concrete classes. In particular, that means that
Pex will often automatically use the automatically generated Stubs implementations
for interfaces or abstract classes. 
&lt;/li&gt;
&lt;li&gt;
Static parameterized unit tests are supported (if static tests are supported by your
test framework) 
&lt;/li&gt;
&lt;li&gt;
Better solving of decimal and floating point constraints. We will report on the details
later. 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;Breaking Changes&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
The PexFactoryClassAttribute is no longer needed and has been removed. Now, Pex will
pick up object factory methods marked with the PexFactoryMethodAttribute from any &lt;i&gt;static
class&lt;/i&gt; in the test project containing the parameterized unit tests. If the generated
tests are stored in a separate project, that project is not searched. 
&lt;/li&gt;
&lt;li&gt;
The PexStore API has been renamed to PexObserve. 
&lt;/li&gt;
&lt;li&gt;
Pex is compatible with Code Contracts versions strictly newer than v1.1.20309.13.
Unfortunately, v1.1.20309.13 is the currently available version of Code &lt;a href="http://research.microsoft.com/contracts" target="_blank"&gt;Contracts&lt;/a&gt;.
The Code Contracts team is planning on a release soon. 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
Happy Pexing!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.dotnetwiki.org/aggbug.ashx?id=83fde01f-786e-456d-b1c4-c8dd52448e69" /&gt;</description>
      <comments>http://blog.dotnetwiki.org/CommentView,guid,83fde01f-786e-456d-b1c4-c8dd52448e69.aspx</comments>
      <category>Code Contracts</category>
      <category>MbUnit</category>
      <category>Pex</category>
      <category>RiSE</category>
      <category>Stubs</category>
      <category>Testing</category>
    </item>
    <item>
      <trackback:ping>http://blog.dotnetwiki.org/Trackback.aspx?guid=2ba3e093-9a77-4e79-ad10-c8d29a5fb405</trackback:ping>
      <pingback:server>http://blog.dotnetwiki.org/pingback.aspx</pingback:server>
      <pingback:target>http://blog.dotnetwiki.org/PermaLink,guid,2ba3e093-9a77-4e79-ad10-c8d29a5fb405.aspx</pingback:target>
      <dc:creator>Jonathan de Halleux</dc:creator>
      <wfw:comment>http://blog.dotnetwiki.org/CommentView,guid,2ba3e093-9a77-4e79-ad10-c8d29a5fb405.aspx</wfw:comment>
      <wfw:commentRss>http://blog.dotnetwiki.org/SyndicationService.asmx/GetEntryCommentsRss?guid=2ba3e093-9a77-4e79-ad10-c8d29a5fb405</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <img style="display: inline; margin-left: 0px; margin-right: 0px" align="right" src="http://research.microsoft.com/en-us/projects/chess/ChessLogoWebpage.png" />A
while ago at PDC, a couple of my colleagues presented <a href="http://research.microsoft.com/chess" target="_blank">CHESS</a> but
unfortunately weren’t ready to release it. Well, you don’t have to wait anymore: <a href="http://msdn.microsoft.com/en-us/devlabs/cc950526.aspx" target="_blank">CHESS
is now available for download at DevLabs</a> for Visual Studio 2008 Team Dev or Team
Test. CHESS comes under the same pre-release license as <a href="http://research.microsoft.com/pex" target="_blank">Pex</a> or
under <a href="http://research.microsoft.com/en-us/projects/chess/download.aspx" target="_blank">an
academic license</a>.
</p>
        <p>
          <strong>
          </strong>
        </p>
        <p>
          <strong>CHESS = Unit Testing of Concurrent Programs</strong>
        </p>
        <p>
CHESS is a tool that finds and reproduces “<a href="http://en.wikipedia.org/wiki/Unusual_software_bug" target="_blank">Heisenbugs</a>”
in concurrent programs (both Win32 and .NET)… You know those kind of bugs that do
not reproduce under the debugger or only in production environment, the kind of bugs
where you scratch your head for days in front of a process dump before giving up.
</p>
        <p>
I also recently recorded a great <a href="http://channel9.msdn.com/posts/Peli/Getting-started-with-CHESS-in-Visual-Studio-2008/" target="_blank">‘getting
started’ CHESS tutorial</a> for CHESS in Visual Studio Unit Test: you can take a unit
test*** and turn it into a CHESS test by adding the <strong>[HostType(“Chess”)]</strong> attribute!
</p>
        <p>
          <a href="http://blog.dotnetwiki.org/images/CHE.1releasedonDevlabsFindingandReproduc_11322/image.png">
            <img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://blog.dotnetwiki.org/images/CHE.1releasedonDevlabsFindingandReproduc_11322/image_thumb.png" width="297" height="115" />
          </a>
        </p>
        <p>
          <strong>*** </strong>That unit test should involve threads, otherwise CHESS will have
not effect.
</p>
        <p>
          <strong>CHESS and Pex</strong>
        </p>
        <p>
In order to control the scheduling of .NET programs, CHESS instruments the threading
APIs using <a href="http://research.microsoft.com/en-us/um/redmond/projects/pex/wiki/Microsoft.ExtendedReflection.html" target="_blank">ExtendedReflection</a>,
the code instrumentation framework that was built for Pex. In the future, we would
also like to combine both approach to explore data inputs and thread schedules together.
</p>
        <p>
Well enough said… go and try it out!
</p>
        <img width="0" height="0" src="http://blog.dotnetwiki.org/aggbug.ashx?id=2ba3e093-9a77-4e79-ad10-c8d29a5fb405" />
      </body>
      <title>CHESS 0.1 released on Devlabs: Finding and Reproducing Heisenbugs in Concurrent Programs</title>
      <guid isPermaLink="false">http://blog.dotnetwiki.org/PermaLink,guid,2ba3e093-9a77-4e79-ad10-c8d29a5fb405.aspx</guid>
      <link>http://blog.dotnetwiki.org/2009/01/30/CHESS01ReleasedOnDevlabsFindingAndReproducingHeisenbugsInConcurrentPrograms.aspx</link>
      <pubDate>Fri, 30 Jan 2009 20:52:08 GMT</pubDate>
      <description>&lt;p&gt;
&lt;img style="display: inline; margin-left: 0px; margin-right: 0px" align="right" src="http://research.microsoft.com/en-us/projects/chess/ChessLogoWebpage.png" /&gt;A
while ago at PDC, a couple of my colleagues presented &lt;a href="http://research.microsoft.com/chess" target="_blank"&gt;CHESS&lt;/a&gt; but
unfortunately weren’t ready to release it. Well, you don’t have to wait anymore: &lt;a href="http://msdn.microsoft.com/en-us/devlabs/cc950526.aspx" target="_blank"&gt;CHESS
is now available for download at DevLabs&lt;/a&gt; for Visual Studio 2008 Team Dev or Team
Test. CHESS comes under the same pre-release license as &lt;a href="http://research.microsoft.com/pex" target="_blank"&gt;Pex&lt;/a&gt; or
under &lt;a href="http://research.microsoft.com/en-us/projects/chess/download.aspx" target="_blank"&gt;an
academic license&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;CHESS = Unit Testing of Concurrent Programs&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
CHESS is a tool that finds and reproduces “&lt;a href="http://en.wikipedia.org/wiki/Unusual_software_bug" target="_blank"&gt;Heisenbugs&lt;/a&gt;”
in concurrent programs (both Win32 and .NET)… You know those kind of bugs that do
not reproduce under the debugger or only in production environment, the kind of bugs
where you scratch your head for days in front of a process dump before giving up.
&lt;/p&gt;
&lt;p&gt;
I also recently recorded a great &lt;a href="http://channel9.msdn.com/posts/Peli/Getting-started-with-CHESS-in-Visual-Studio-2008/" target="_blank"&gt;‘getting
started’ CHESS tutorial&lt;/a&gt; for CHESS in Visual Studio Unit Test: you can take a unit
test*** and turn it into a CHESS test by adding the &lt;strong&gt;[HostType(“Chess”)]&lt;/strong&gt; attribute!
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.dotnetwiki.org/images/CHE.1releasedonDevlabsFindingandReproduc_11322/image.png"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://blog.dotnetwiki.org/images/CHE.1releasedonDevlabsFindingandReproduc_11322/image_thumb.png" width="297" height="115" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;*** &lt;/strong&gt;That unit test should involve threads, otherwise CHESS will have
not effect.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;CHESS and Pex&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
In order to control the scheduling of .NET programs, CHESS instruments the threading
APIs using &lt;a href="http://research.microsoft.com/en-us/um/redmond/projects/pex/wiki/Microsoft.ExtendedReflection.html" target="_blank"&gt;ExtendedReflection&lt;/a&gt;,
the code instrumentation framework that was built for Pex. In the future, we would
also like to combine both approach to explore data inputs and thread schedules together.
&lt;/p&gt;
&lt;p&gt;
Well enough said… go and try it out!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.dotnetwiki.org/aggbug.ashx?id=2ba3e093-9a77-4e79-ad10-c8d29a5fb405" /&gt;</description>
      <comments>http://blog.dotnetwiki.org/CommentView,guid,2ba3e093-9a77-4e79-ad10-c8d29a5fb405.aspx</comments>
      <category>CHESS</category>
      <category>Pex</category>
      <category>RiSE</category>
    </item>
  </channel>
</rss>