“Side note
I probably should point out that I have had some problem with using FsCheck, if you have you're using NCrunch you might notice the tests don't get picked up. However, I have found that if you include the following code in your module it works:
[<Fact>]
let ``ignore this test`` () =
()
This (for some reason) causes NCrunch to see all the other tests too.”
Indeed this technique works; but it would be nice not to have to add the extra test to every file.
It's possible that someone may have found a way, but to my knowledge at the moment there is no other way. The reason for this is because of the way the compiler binds dependencies into assemblies. For NCrunch to detect the presence of a test framework, an assembly/project must reference known binaries from this test framework.
This creates problems when working with derivatives/extensions of test frameworks that don't use the original binaries. Although FsCheck does depend on xUnit, your code won't reference the xUnit binaries unless you declare a dependency somewhere (as you have done above).
I haven't yet found a satisfactory way of solving this problem that doesn't annihilate the performance of the NCrunch engine.