0

我想使用 test-framework-th 来生成测试组。

我有这个主要的测试模块:

module Main where

import           Test.Framework.TH

import           Foo.Test

main = $(defaultMainGenerator)

这个包含测试的模块:

module Foo.Test where

import           Test.HUnit

case_1 = do 1 @=? 2

但是,defaultMainGenerator不检测Foo.Test模块中的测试。它只检测调用它的模块中的测试(在这种情况下Main)。

如何在不为每个测试复制样板的情况下跨模块拆分测试?

4

1 回答 1

0

在每个模块中使用testGroupGenerator为该模块生成一个测试组,然后使用来自的那些main,例如

Foo.hs:

module Foo where
import Test.Framework.TH
tests = $(testGroupGenerator)
...

酒吧.hs:

module Bar where
import Test.Framework.TH
tests = $(testGroupGenerator)
...

主要.hs:

import Test.Framework

import Foo
import Bar

main = defaultMain [Foo.tests, Bar.tests]
于 2014-04-13T20:10:14.897 回答