2017-06-05 61 views
4

我試圖在我們的測試項目中獲得並期望運行。F#中的Expecto測試即使在被迫失敗時也總是通過

雖然它編譯和運行良好,但我想確保它確實工作。所以我給了它一個失敗的案例,它通過。

我在這裏錯過了一些愚蠢的東西嗎?從測試

[08:52:06 INF] EXPECTO? Running tests... 
[08:52:06 INF] EXPECTO! 1 tests run in 00:00:00.0569286 – 1 passed, 0 ignored, 0 failed, 0 errored. ᕙ໒(˵ ಠ ╭͜ʖ╮ ಠೃ ˵)७ᕗ 

回答

6

我的測試設置

let tests = 
    testList "Test Group" [ 
     test "Testing fail test" { 
      let result = false 
      Expecto.Expect.isTrue result 
     } 
    ] 

let runTests args = 
    runTestsWithArgs defaultConfig args tests 

輸出所有的Expecto.Expect函數採用一個串參數以可被打印在失敗消息的結束。您沒有提供該參數,因此您的Expecto.Expect.isTrue result表達式的類型爲string -> unit:它實際上尚未調用isTrue。 (您應該在IDE中的該表達式下看到一條綠色波浪線,表示該值將被忽略)。向您的呼叫中添加一個字符串,例如Expecto.Expect.isTrue result "should fail",然後您的測試將按其應有的順序進行。

+0

是的,修復它....謝謝 –

+3

此外,通常是一個好主意,「警告作爲錯誤」編譯。 –

相關問題