2016-01-16 3 views
0

Мой .cabal файл содержит следующую hspec конфигурацию:междусобойчик расконфигурация для испытаний

-- The name of the package. 
name:    MyModule 

version:    0.1.0.0 

cabal-version:  >=1.10 
... 
test-suite my-tests 
    ghc-options:   -Wall -Werror 
    cpp-options:   -DTEST 
    default-extensions: OverloadedStrings 
    type:    exitcode-stdio-1.0 
    main-is:    HSpecTests.hs 
    hs-source-dirs:  tests 
    build-depends:  MyModule, base >= 4.8 && < 4.9, containers >= 0.5 && <0.6, split >= 0.2 && < 0.3, hspec 
    default-language: Haskell2010 

Моя структура каталогов выглядит следующим образом:

MyProject 
    | - src 
      | - Main.hs 
      | - Other.hs 
      | - tests 
      | -HSpecTests.hs 
    | - dist 
    | - MyProj.cabal 

когда я бегу cabal build, мой источник построить успешно для исполняемого файла ./dist/build/myproj/myproj ,

cabal build затем терпит неудачу с:

cabal: can't find source for HSpecTests in 
dist/build/my-tests/my-tests-tmp, tests 

Проверка каталога build показывает, что каталог my-tests отсутствует.

изменяя hs-source-dirs к src/tests производит:

cabal: can't find source for HSpecTests in 
dist/build/my-tests/my-tests-tmp, src/tests 

Двигаясь все тесты на высшем уровне под корневым/тестов, а также изменение файла .cabal к hs-source-dirs: tests производит:

<command line>: cannot satisfy -package-id MyModule-0.1.0.0-inplace 
    (use -v for more information) 

Как есть Я неправильно сконфигурировал это?

ответ

2

Ваш hs-source-dirs неправильно:

hs-source-dirs:  tests 

Учитывая, что путь HSpecTests «s является src/tests/HSpecTests.hs, она должна быть

hs-source-dirs:  src/tests 

Однако, имейте в виду, что tests обычно находятся в папке верхнего уровня :

MyProject 
    | - src 
      | - Main.hs 
      | - Other.hs 
    | - tests 
      | -HSpecTests.hs 
    | - dist 
    | - MyProj.cabal 
+0

меняющегося HS-исток-каталоги для SRC/тестов выдает сообщение: междусобойчик: не может найти источник HSpecTests в Dist/сборки/My -tests/my-tests-tmp, src/tests –

+0

сделал несколько изменений для решения обоих возможных путей –

0

было две ошибки:

1) (спасибо @Zeta для получения меня на трассе с моей файловой структуры), испытания должны были быть в директории тестов на корневом уровне

2) Как указано здесь: Error while creating test suites: "cannot satisfy -package-id" мои тесты не может зависеть от исполняемого файла и требуется создание библиотеки

Смежные вопросы