4
HTF有sample project,它显示了如何使用测试框架。模块MyPkg.A定义了一些测试,MyPkg.B定义了一些测试。是否有可能编写新的模块MyPkg.C,它聚合了模块A和B的测试(并且没有定义新的测试本身)?多个模块中的Haskell测试框架(HTF)和测试定义
我不想从A和B导入测试(在我的测试运行器主模块中),我想从单个C模块导入测试。
我实现MyPkg.C这样
{-# OPTIONS_GHC -F -pgmF htfpp #-}
module MyPkg.C (htf_importedTests) where
import Test.Framework
import {[email protected] HTF_TESTS @-} MyPkg.A
import {[email protected] HTF_TESTS @-} MyPkg.B
我的主测试模块是这样的:
{-# OPTIONS_GHC -F -pgmF htfpp #-}
module Main where
import Test.Framework
import Test.Framework.BlackBoxTest
import {[email protected] HTF_TESTS @-} MyPkg.C
main = htfMain htf_importedTests
当我尝试编译这段代码,我得到一个错误:
TestMain.hs:23:5:
Not in scope: `htf_MyPkg_C_thisModulesTests'
Perhaps you meant `htf_Main_thisModulesTests'
目前,这是一个很好的解决方法。但我认为HTF应该简单地将所有已导入的测试添加到thisModulesTests。这就是你的代码手工完成的工作,这就是HTF应该在未来自动完成的工作。我已经打开了一个问题,请参阅https://github.com/skogsbaer/HTF/issues/15 – stefanwehr
@stefanwehr:的确,重新导入导入的测试似乎是最优雅和直观的解决方案 –