2014-07-08 41 views
3

我试图找出如何建立并通过以下博客文章打算使用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. 

根据博客文章的图像,这将导致在测试一个浏览器测试失败。在我而言不过,我得到这个:

Nothing

我试图与周围的代码位搞乱,而且似乎[<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文件,所有警告消失。我猜这个警告可能是为什么事情没有按预期工作的线索,但我仍然无能为力地解决这个问题。

+1

您是否已将[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) –

+0

是的。跑步者已安装。 :-) – phaz

+1

啊,没有读得很好 - 你已经排除了这些可能性很好,因此在发现过程中发生崩溃/挂起。输出窗口(选择下拉列表中的测试)显示什么?如何将调试器附加到'vstest.discovery' *进程并陷入异常? –

回答

1

看来如果绑定重定向设置不正确,测试发现将自动失败。这花了我大约3个小时,所以我感到痛苦。只需使用适当的重定向将App.config文件添加到您的测试项目。我不得不重定向FSharp。核心也是这样的:https://github.com/fscheck/FsCheck/issues/151

相关问题