2016-12-06 93 views
0

在大多数编程语言中,在某些情况下很容易跳过测试。在基于haskell HSpec的测试套件中有没有适当的方法来做到这一点?是否有可能跳过HSpec测试套件中的测试?

+0

什么是编程语言和测试系统之间的联系? :) – freestyle

+0

我的意思是测试用例的实现,通常意味着应用测试框架。 – palik

回答

1

如果我理解正确,核心HSpec没有这种情况下的特殊解决方案。但是你可以跳过测试而没有详细的说明。例如:

main = hspec $ do 
    ... 
    when isDatabaseServerRunning $ do 
     describe "database" $ do 
      it "test some one" $ do 
       ... 

另一种解决方案也许使用的功能等mapSpecItem_用于改变测试的结果,以Pending与关于为什么被跳过消息。例如:

skip :: String -> Bool -> SpecWith a -> SpecWith a 
skip _ False = id 
skip why True = mapSpecItem_ updateItem 
    where 
    updateItem x = x{itemExample = \_ _ _ -> return . Pending . Just $ why} 
+0

>如果我理解正确,HSpec的核心没有针对这种情况的特殊解决方案。 谢谢@freestyle,这证实了我的假设 – palik

相关问题