Я попытался следовать this guide, чтобы написать несколько тестов для пакета Haskell с использованием типа теста detailed-0.9
. Интрига файлПолучение ошибки «Prelude.read: no parse» при использовании подробных тестов 0,9 с помощью cabal
Name: bar
Version: 1.0
License: BSD3
Cabal-Version: >= 1.10
Build-Type: Simple
Library
exposed-modules: Foo
build-depends: base >=4.9 && <4.10
default-language: Haskell2010
Test-Suite test-bar
type: detailed-0.9
test-module: Bar
build-depends: base, Cabal >= 1.9.2
default-language: Haskell2010
и Bar.hs является
module Bar (tests) where
import Distribution.TestSuite
tests :: IO [Test]
tests = return [ Test succeeds, Test fails ]
where
succeeds = TestInstance
{ run = return $ Finished Pass
, name = "succeeds"
, tags = []
, options = []
, setOption = \_ _ -> Right succeeds
}
fails = TestInstance
{ run = return $ Finished $ Fail "Always fails!"
, name = "fails"
, tags = []
, options = []
, setOption = \_ _ -> Right fails
}
Однако, когда я запускаю тесты с
cabal configure --enable-tests
cabal build
cabal test
Я получаю
Preprocessing test suite 'test-bar' for bar-1.0...
[1 of 1] Compiling Main (dist/build/test-barStub/test-barStub-tmp/test-barStub.hs, dist/build/test-barStub/test-barStub-tmp/Main.dyn_o)
Linking dist/build/test-barStub/test-barStub ...
Running 1 test suites...
Test suite test-bar: RUNNING...
Prelude.read: no parse
Это также происходит с кодом от this repository.
Использование strace cabal test
Мне удалось увидеть, что последний файл, который пытается открыть cabal, равен dist/test/cabal-test-1804289383846930886.log
, которого не существует. Создание файла не помогает.
Является ли тестовый тип detailed-0.9
экспериментальным? Должен ли я использовать exitcode-stdio-1.0
вместо этого?
GHC версия: 8.0.1
междусобойчик Версия: 1.24.0.0
EDIT: ошибка сохраняется, даже если я устанавливаю tests = return []
в Bar.hs
.
Ваш код (плюс заглушка Foo.hs) работает для меня. Я видел, что эта ошибка возникает при сбое тестовой программы. – NovaDenizen
Я тоже не могу воспроизвести это. – redneb
Это отлично работает для меня, используя те же ghc и cabal. Вы попробовали «cabal clean» перед зданием? – Michael