F# 中的 Expecto 测试即使在被迫失败时也始终通过
Expecto Test in F# always passes even when forced to fail
我正在尝试在我们的测试项目中启动和 运行ning。
虽然它可以编译并且 运行 很好,但我只是想确保它真的能正常工作。所以我给了它一个失败案例,它通过了。
我是不是错过了什么傻事?
我的测试设置
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. ᕙ໒( ˵ ಠ ╭͜ʖ╮ ಠೃ ˵ )७ᕗ
所有 Expecto.Expect
函数的末尾都有一个字符串参数,即失败时要打印的消息。您没有提供该参数,因此您的 Expecto.Expect.isTrue result
表达式的类型为 string -> unit
:它实际上尚未调用 isTrue
。 (您应该会在 IDE 中的该表达式下方看到一条绿色波浪线,表示该值已被忽略)。在您的调用中添加一个字符串,例如 Expecto.Expect.isTrue result "should fail"
然后您的测试将失败。
我正在尝试在我们的测试项目中启动和 运行ning。
虽然它可以编译并且 运行 很好,但我只是想确保它真的能正常工作。所以我给了它一个失败案例,它通过了。
我是不是错过了什么傻事?
我的测试设置
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. ᕙ໒( ˵ ಠ ╭͜ʖ╮ ಠೃ ˵ )७ᕗ
所有 Expecto.Expect
函数的末尾都有一个字符串参数,即失败时要打印的消息。您没有提供该参数,因此您的 Expecto.Expect.isTrue result
表达式的类型为 string -> unit
:它实际上尚未调用 isTrue
。 (您应该会在 IDE 中的该表达式下方看到一条绿色波浪线,表示该值已被忽略)。在您的调用中添加一个字符串,例如 Expecto.Expect.isTrue result "should fail"
然后您的测试将失败。