Стек запустить один тест - PullRequest
       8

Стек запустить один тест

0 голосов
/ 04 апреля 2019

У меня есть несколько тестов, определенных в моем файле кабала:

benchmark my-gauge-bench
  type: exitcode-stdio-1.0
  main-is: Main.hs
  hs-source-dirs:
      bench/gauge
  ghc-options: -Wall -Wcompat -Wincomplete-record-updates -Wincomplete-uni-patterns -Wredundant-constraints -Wall -threaded -rtsopts -with-rtsopts=-N
  build-depends:
      QuickCheck
    , base >=4.10 && <10
    , bytestring
    , gauge
  default-language: Haskell2010

benchmark my-weigh-bench
  type: exitcode-stdio-1.0
  main-is: Main.hs
  other-modules:
      Paths_pkg_core_gen
  hs-source-dirs:
      bench/weigh
  ghc-options: -Wall -Wcompat -Wincomplete-record-updates -Wincomplete-uni-patterns -Wredundant-constraints -Wall
  build-depends:
      QuickCheck
    , base >=4.10 && <10
    , bytestring
    , weigh

Как я могу запустить только один тест (например, my-guage-bench) с помощью стека?

Ответы [ 2 ]

2 голосов
/ 04 апреля 2019

Это относится ко всем целям в stack, будь то тесты, тесты или исполняемые файлы.

В стеке есть небольшая классная команда, которая может помочь вам перечислить все доступные цели, не прибегая к копанию my-package.cabal или package.yaml файлов.Это особенно полезно для проектов с несколькими пакетами и будет работать для всех пакетов, перечисленных в поле packages: в stack.yaml:

$ stack ide targets
my-package:lib
my-package:test:doctests
my-package:test:tests
my-package:bench:weight
my-package:bench:gauge
another-package:lib
another-package:exe:my-cool-executable
another-package:test:doctests
another-package:test:tests
another-package:bench:weight
another-package:bench:criterion

Теперь, когда мы знаем список, мы можем вызывать определенные тесты

$ stack bench my-package:bench:gauge another-package:bench:criterion
2 голосов
/ 04 апреля 2019

Вам нужно сделать что-то вроде этого, чтобы просто запустить один тест:

stack bench package-name:my-guage-bench
...