title: Can I know the actual expression that failed in Xunit?
body: <p>Suppose I have a test using <code>Xunit</code> like this: </p>
  
  <pre class="lang-ml prettyprint-override"><code>module Tests
  
  open System
  open Xunit
  
  let isSquare x = 
    let root = sqrt x
    root % 1 = 0
  
  [&lt;Fact&gt;]
  let ``Various tests`` () =
    let whitelist = 
      [
        1
        4
        9
        9481129 // Will trigger failure
        16
        25
      ]
  
    for x in whitelist do
      Assert.True (isSquare x)
  
    let blacklist = 
      [
        3
        26
        101
      ]
  
    for x in blacklist do
      Assert.False (isSquare x)
  
  </code></pre>
  
  <p>When I run this test, the failure message is not very useful: </p>
  
  <pre><code> [xUnit.net 00:00:00.98]  ... Error Message:
     Assert.False() Failure
  Expected: False
  Actual:   True
    Stack Trace: ...
  </code></pre>
  
  <p>It gives me the line number of the assert, but what I actually want is the <em>value</em> of <code>x</code> where it failed. </p>
  
  <p>Ideally something like this: </p>
  
  <pre><code>Assertion failed for: 
  
    Assert.True (isSquare 9481129)
  </code></pre>
  
  <p>Is it possible to do this with <code>Xunit</code>, even with long or generated white/black lists?</p>
  
  <p>My current work-around is to add print statements, which is not ideal. </p>