8

作为 quickCheck 的粉丝,我有很多

prop_something_something = ...

在我的整个程序中。

为方便起见,为了轻松运行所有这些,我定义

runchecks = do
    quickCheck prop_something_something
    quickCheck prop_something_different

但是有没有一种很好的生成方法runchecks

TL;DR:我想轻松运行文件中的所有快速检查。我想一种方法是在可运行的测试前面加上 test_ 或类似的东西,但这可能太老套了。

4

2 回答 2

8

An extra note: this functionality exists out of the box in QuickCheck 2 as well, see the function quickCheckAll, which requires an import of Test.QuickCheck.All as well as TemplateHaskell. quickCheckAll will test all functions in your module whose name starts with prop_.

于 2012-04-27T05:20:54.033 回答
7

你可以用这个test-framework-th包来做到这一点。做就是了:

import Test.Framework.TH
import Test.Framework.Providers.QuickCheck2
runchecks = $(defaultMainGenerator)

这将使用test-framework运行测试的方式,即您将获得比简单地一个接一个地运行测试所获得的信息略多的信息,这通常是一件好事。

您显然需要TemplateHaskell启用它才能工作;要么添加Default-extensions: TemplateHaskell到您的 Cabal 文件,要么添加到文件{-# LANGUAGE TemplateHaskell #-}的顶部。

于 2012-04-26T18:27:18.497 回答