我试图找出如何建立并通过以下博客文章打算使用FsCheck:属性甩开的xUnit和测试资源管理器
http://www.clear-lines.com/blog/post/FsCheck-2b-XUnit-3d-The-Bomb.aspx
我已经尽我所能模仿在后的全过程,一切运行正常,直到下面的一段代码:
namespace FSharpTests
open Xunit
open FsCheck
open FsCheck.Xunit
open CSharpCode
module Specification =
[<Property>]
let ``square should be positive`` (x:float) =
x * x > 0.
根据博客文章的图像,这将导致在测试一个浏览器测试失败。在我而言不过,我得到这个:
我试图与周围的代码位搞乱,而且似乎[<Property>]
属性是罪魁祸首。
下面这段代码包含了博客文章中的一些前面的代码,如果所述属性被超评论,将产生两个通过测试,但是不产生任何东西(见上图)否则将运行正常。
namespace FSharpTests
open Xunit
open FsCheck
open FsCheck.Xunit
open CSharpCode
module Specification =
[<Fact>]
let ``length above 8 should be valid``() =
let password = "12345678"
let validator = Validator()
Assert.True(validator.IsValid(password))
[<Fact>]
let ``length under 8 should not be valid``() =
let password = "1234567"
let validator = Validator()
Assert.False(validator.IsValid(password))
//[<Property>]
let ``square should be positive`` (x:float) =
x * x > 0.
我做错了什么?有什么缺失?
我目前正在运行...
- 的Visual Studio 2012最终版本11.0.61030.00更新4
- F#3.0(我想..?如何检查这到底是什么?)
- FsCheck 0.9.4.0
- FsCheck.Xunit 0.4.1.0
- xUnit.net 1.9.2
- xUnit.net亚军和Vi SUAL工作室0.99.7
更新
我试图在另一台计算机上的例子,具有相同的结果。 但是,我注意到错误列表中有一个警告,我没有注意到它也存在于我第一次尝试使用的笔记本电脑上。
描述说:
Found conflicts between different versions of the same dependent assembly.
导航到该警告的来源,在编辑器中打开Microsoft.Common.targets,向我展示数千难以理解XML的线路和101个进一步警告。
如果我删除FsCheck包并关闭Microsoft.Common.targets文件,所有警告消失。我猜这个警告可能是为什么事情没有按预期工作的线索,但我仍然无能为力地解决这个问题。
您是否已将[xunit runner软件包安装到Visual Studio](http://visualstudiogallery.msdn.microsoft.com/463c5987-f82b-46c8-a97e-b1cde42b9099)? [其他一切都很好](http://stackoverflow.com/questions/16214684/why-is-the-xunit-runner-not-finding-my-tests) –
是的。跑步者已安装。 :-) – phaz
啊,没有读得很好 - 你已经排除了这些可能性很好,因此在发现过程中发生崩溃/挂起。输出窗口(选择下拉列表中的测试)显示什么?如何将调试器附加到'vstest.discovery' *进程并陷入异常? –