首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Hspec运行HUnit测试

用Hspec运行HUnit测试
EN

Stack Overflow用户
提问于 2015-11-14 09:38:36
回答 1查看 89关注 0票数 0

我想在规范中运行HUnit测试:

代码语言:javascript
复制
module SHCSpec (spec)
    where

import Test.Hspec
import Test.Hspec.Contrib.HUnit
import Test.HUnit

import SHC.Types
import SHC.Lix


spec :: Spec
spec = do
    fromHUnitTest ("SHC.Lix" ~: "toHit" ~:
        [ Irrelevant @=? toHit []
        , None       @=? toHit [False]
        , None       @=? toHit [False, False]
        , Partial    @=? toHit [False, True]
        , Partial    @=? toHit [True, False]
        , Partial    @=? toHit [False, False, True]
        , Partial    @=? toHit [False, True, False]
        , Partial    @=? toHit [True, False, False]
        , Full       @=? toHit [True]
        , Full       @=? toHit [True, True]
        ])

上面的代码可以工作,但是它产生了这个丑陋的输出:

代码语言:javascript
复制
SHC
  SHC.Lix
    toHit
      <unlabeled>
      <unlabeled>
      <unlabeled>
      <unlabeled>
      <unlabeled>
      <unlabeled>
      <unlabeled>
      <unlabeled>
      <unlabeled>
      <unlabeled>

是否可以将标签toHit附加到每个测试用例?就像这样:

代码语言:javascript
复制
SHC
  SHC.Lix
    toHit
    toHit
    toHit
    toHit
    toHit
    toHit
    toHit
    toHit
    toHit
    toHit

更好的做法是在每个toHit大小写中附加一个数字。我捣乱了TestListmap TestLabel,但都没有用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-14 13:54:18

将标签附加到所有具有如下函数的测试如何:

代码语言:javascript
复制
label ts =
  [ show i ~: t | (i,t) <- zip [(1::Int)..] ts ]

只需在测试列表前加上对label的调用

代码语言:javascript
复制
spec :: Spec
spec = do
    fromHUnitTest ("SHC.Lix" ~: "toHit" ~:
        label
        [ Irrelevant @=? toHit []
        , None       @=? toHit [False]
        ...
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33707030

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档