我有一些 xunit 测试,为了便于阅读,我想按如下方式布局:
[<Fact>] let ``Has Hash Code 2``() = target.GetHashCode().ShouldBe 2
[<Fact>] let ``ToString yields two``() = target.ToString().ShouldBe "two"
[<Fact>] let ``Has underlysing type int``() = target.GetUnderlyingType().ShouldBe typeof<int>
我在 let 语句中收到编译器警告:“缩进可能不正确:此标记越位于位置 %s 处开始的上下文。尝试进一步缩进此标记或使用标准格式约定。”
我试过
#nowarn "lexfltTokenIsOffsideOfContextStartedEarlier"
但这只是生成了另一个编译器警告“无效警告号”。在 https://github.com/fsharp/fsharp/blob/057dbf77df7355321c3c18137c2d552bdfa1272b/src/fsharp/FSComp.txt 中没有针对此错误列出警告编号
有没有办法抑制这个警告?
最佳答案
我很抱歉以一种“你不需要它”的方式回答,但这似乎是事实。此外,这个问题显然成为那些用 F# 编写单元测试的人的常见问题解答。还有一个案例是 [<Literal>]
的。
无论如何,在项目级别甚至文件级别禁用警告似乎是一个坏主意,除非您有充分的理由这样做。
据我了解,您希望语句是单行的(例如,[<Fact>]
没有占据整行)。在 VS2013 中有两种方法可以实现:
let
内:let [<Fact>] ``Has Hash Code 2``() = target.GetHashCode().ShouldBe 2
[<Fact>] let ``Has Hash Code 2``() = target.GetHashCode().ShouldBe 2;;
关于unit-testing - 禁止 F# 编译器警告 : Possible incorrect indentation: this token is offside of context,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30270237/