2015-05-25 1 views
0

Я сделал тестовую процедуру для программы Haskell с quickcheck. Я заявил в своем Кабал файл с:не читаемый файл журнала быстрой проверки после тестовой процедуры

Test-Suite routine_de_test 
    Type:    exitcode-stdio-1.0 
    Hs-Source-Dirs:  test 
    Main-is:   Tests.hs 

и запустил его:

cabal configure --enable-tests 
cabal buil 
cabal test 

тесты обрабатываются правильно, и я ожидал увидеть подробности о случайной величины, используемой для каждого теста в лог-файл dist/test/, но когда я открываю его, файл выглядит следующим образом:

enter image description here

Я попытался открыть файл с несколько кодировок (UTF8, ISO-8859-15, ...), но ничего не меняется.

Нормально ли это? Или что-то не так?

Возможно ли при проведении теста quickcheck из cabal получить полный список случайных значений, используемых для каждого теста?

ответ

1

Похоже, забавные персонажи просто забоя, а QuickCheck просто подсчитывалось количество тестов, проведённых до сих пор перезапись (0 tests) с (1 test), а затем (2 tests), а затем с (3 tests) и т.д.

Визуально это будет выглядеть отлично при отображении на терминал.

Update:

Чтобы сообщить случайные значения, используемые для испытания единственный способ я знаю, чтобы написать тест, чтобы явно показать (или сохранить в файл) значения, используемые.

Если ваш тест является чистой функцией, вы можете использовать функцию trace от Debug.Trace. Например, если у вас есть это свойство:

prop_commutes :: Int -> Int -> Bool 
prop_commutes a b = a + b == b + a 

Вы можете отслеживать каждый вызов prop_commutes путем изменения так:

import Debug.Trace 

prop_commutes :: Int -> Int -> Bool 
prop_commutes x y = a + b == b + a 
    where (a,b) = trace ("(a,b) = " ++ show (x,y)) (x,y) 

, а затем quickCheck prop_commutes будет издавать такие строки:

(x,y) = (20,-73) 
(x,y) = (71,-36) 
(x,y) = (2,-11) 
... 

в дополнение к его нормальному выходу.

+0

точно - вы получите то же самое, если вы используете ghci say в emacs;) – Carsten