Expecto Test в F# всегда проходит, даже когда вынужден потерпеть неудачу

Я пытаюсь запустить и запустить в нашем тестовом проекте.

Хотя он компилируется и работает нормально, я просто хотел убедиться, что он действительно работает. Таким образом, я дал ему случай неудачи, и это проходит.

Я что-то упустил здесь?

Моя тестовая настройка

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

let runTests args =
  runTestsWithArgs defaultConfig args tests

Выход из теста

[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. ᕙ໒( ˵ ಠ ╭͜ʖ╮ ಠೃ ˵ )७ᕗ

1 ответ

Решение

Все Expecto.Expect функции принимают строковый параметр в конце, который является сообщением для печати при ошибке. Вы не предоставляете этот параметр, поэтому ваш Expecto.Expect.isTrue result выражение имеет тип string -> unit: это на самом деле не называется isTrue еще. (Вы должны увидеть зеленую волнистую линию под этим выражением в вашей IDE, говорящую о том, что значение игнорируется). Добавить строку в ваш звонок, как Expecto.Expect.isTrue result "should fail" и тогда ваш тест провалится, как и должно быть.

Другие вопросы по тегам