gpt4 book ai didi

haskell - 如何从 HPC 的代码覆盖范围中排除 Show 的派生?

转载 作者:行者123 更新时间:2023-11-28 20:11:45 24 4
gpt4 key购买 nike

我有派生 Show 的类型。
它对开发很有用,需要测试,但对我的应用程序逻辑不是必需的,因此不需要任何测试。

我想让 HPC 意识到这一点,以便为我的测试获得 100% 的覆盖率。有什么办法可以排除吗?
设定?语用?欺骗它的测试?

我尝试了 seqing show 但它一开始没有用(后来它成功了并解决了问题,我发布了一个答案,请看)。

我还尝试使用 CPP 进行扩展以使用一个宏条件,该条件将在测试时排除 Show,但是 quickCheckAll 不喜欢那而且我什至没有通过编译(这在测试失败的情况下实际上是可以理解的)。

最佳答案

我最终 seq 编辑了所有 Show 必须提供的内容,这样 GHC 就会看到我去过那里,并承认我已经涵盖了它。
以下内容涵盖了我的类型:

prop_fieldShow :: (Show i, Show a) => Field i a -> Bool
prop_fieldShow field = showList [field] `seq` showsPrec 0 field `seq` show field `seq` True

关于haskell - 如何从 HPC 的代码覆盖范围中排除 Show 的派生?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25797720/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com