Size: a a a

2020 June 19

AV

Alexander Vershilov in fprog_spb
ghcid --allow-eval
источник

JS

Jerzy Syrowiecki in fprog_spb
интересно. спасибо
источник

AV

Alexander Vershilov in fprog_spb
В последних версиях оно даже multiline умеет, но у меня не взлетело
источник

AV

Alexander Vershilov in fprog_spb
Оно классное, его в доктесты можно превращать запуском
s/\$>/>>>/
источник

AV

Alexander Vershilov in fprog_spb
А доктесты — это прекрасно
источник

MK

Maxim Koltsov in fprog_spb
Насколько это пригождается в обычной работе? Все-таки обычно же нужно много контекста типа тех же баз данных
источник

JS

Jerzy Syrowiecki in fprog_spb
Alexander Vershilov
А доктесты — это прекрасно
а доктесты запускаются через cabal-doctest?
источник

YS

Yan Shkurinskiy in fprog_spb
Maxim Koltsov
Насколько это пригождается в обычной работе? Все-таки обычно же нужно много контекста типа тех же баз данных
Можно наверное тоже прокинуть, или в этом есть проблема?
источник

AV

Alexander Vershilov in fprog_spb
У меня обычный cabal test, через пакет cabal-doctest и custom setup (я из проекта в проект копирую)
источник

AV

Alexander Vershilov in fprog_spb
Maxim Koltsov
Насколько это пригождается в обычной работе? Все-таки обычно же нужно много контекста типа тех же баз данных
Ты видел как можно создать контекст ^_^
источник

AV

Alexander Vershilov in fprog_spb
-- $> testDbConnection = unsafePerformIO $ connect ...
источник

MK

Maxim Koltsov in fprog_spb
Alexander Vershilov
У меня обычный cabal test, через пакет cabal-doctest и custom setup (я из проекта в проект копирую)
А у тебя это работает с кабалом? У меня только со стеком, а с кабалом не может импортировать зависимости
источник

AV

Alexander Vershilov in fprog_spb
Да
источник

MK

Maxim Koltsov in fprog_spb
Интересно
источник

AV

Alexander Vershilov in fprog_spb
TLDR: 3 шага как запустить доктесты с кабалом.

Setup.hs:

import Distribution.Extra.Doctest ( defaultMainWithDoctests )
main :: IO ()
main = defaultMainWithDoctests "doctests"

cabal:
build-type:          Custom
custom-setup
 setup-depends:
     Cabal
   , base
   , cabal-doctest >=1.0.2 && <1.1

test-suite doctests
 buildable: True
 type: exitcode-stdio-1.0
 main-is: doctests.hs
 hs-source-dirs: test
 ghc-options: -Wall
 build-depends:
     base
   , doctest
 default-language: Haskell2010

doctest.hs:

module Main where

import           Build_doctests (flags, module_sources, pkgs)
import           Data.Foldable  (traverse_)
import           Test.DocTest

main :: IO ()
main = do
 traverse_ putStrLn args
 doctest args
 where args = flags ++ pkgs ++ module_sources
источник

AV

Alexander Vershilov in fprog_spb
Maxim Koltsov
Насколько это пригождается в обычной работе? Все-таки обычно же нужно много контекста типа тех же баз данных
В работе не очень часто, обычно когда со сложными чистыми фунциями работать
источник

AV

Alexander Vershilov in fprog_spb
грязные функции они обычно простые и сложная логика всё равно в чистых
источник

MK

Maxim Koltsov in fprog_spb
Alexander Vershilov
TLDR: 3 шага как запустить доктесты с кабалом.

Setup.hs:

import Distribution.Extra.Doctest ( defaultMainWithDoctests )
main :: IO ()
main = defaultMainWithDoctests "doctests"

cabal:
build-type:          Custom
custom-setup
 setup-depends:
     Cabal
   , base
   , cabal-doctest >=1.0.2 && <1.1

test-suite doctests
 buildable: True
 type: exitcode-stdio-1.0
 main-is: doctests.hs
 hs-source-dirs: test
 ghc-options: -Wall
 build-depends:
     base
   , doctest
 default-language: Haskell2010

doctest.hs:

module Main where

import           Build_doctests (flags, module_sources, pkgs)
import           Data.Foldable  (traverse_)
import           Test.DocTest

main :: IO ()
main = do
 traverse_ putStrLn args
 doctest args
 where args = flags ++ pkgs ++ module_sources
Понятно, я без setup.hs делал
источник

MK

Maxim Koltsov in fprog_spb
Спасибо
источник

AV

Alexander Vershilov in fprog_spb
Alexander Vershilov
грязные функции они обычно простые и сложная логика всё равно в чистых
Это уже на грани троллинга, но как-то так и бывает
источник