我的类型派生Show
它对开发和开发很有用。测试所需,但对于我的应用程序的逻辑不是必需的,所以它不需要任何测试。
我想让HPC意识到这一点,以便为我的测试获得100%的覆盖率。有没有办法排除它?
一个设置?一个pragma?欺骗它的测试?
我尝试了seq
show
但它起初没有工作(之后它确实解决了问题,我发布了一个答案,看到了它)。
我还尝试使用CPP
进行扩展,以便在测试时使用会排除Show
的宏条件,但是quickCheckAll
并不喜欢这种情况而且我甚至都没有通过编译(在测试失败的情况下实际可以理解)。
答案 0 :(得分:1)
我最终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