在大多数编程语言中,在某些情况下很容易跳过测试。在基于Haskell Hspec的测试套件中,是否有适当的方法?
'将其更改为XIT将相应的规格项目标记为已待处理。
来源:http://hackage.haskell.org/package/hspec-2.7.8/docs/test-hspec.html
如果我正确理解, hspec 的 core 对这种情况没有特殊的解决方案。但是您可以跳过测试而无需详细的测试。例如:
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}