我試圖找出如何建立並通過以下博客文章打算使用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' *進程並陷入異常? –