2015-06-12 1 views
0

Я хотел бы «взаимодействовать» с Cabal во время фазы тестирования (например, exitcode-stdio-1.0) с использованием относительного API (https://www.haskell.org/cabal/release/cabal-latest/doc/API/Cabal/Distribution-Simple-Test-ExeV10.html) для настройки, например, конечного вывода. Как я могу это сделать? Я не могу найти нужную документацию.Как работать с Cabal API

ответ

2

A exitcode-stdio-1.0 test suite - это только исполняемый файл, который необходимо реализовать main :: IO(). Тест Cabal запускает исполняемый файл и фиксирует вывод в файле журнала. Поэтому, если вы используете тестовую структуру, такую ​​как вкусная, вы получите вкусный вкус. Конечно, вы можете просто написать свой собственный исполняемый файл и вывести то, что хотите. Вам просто нужно вернуть правильный код ошибки, чтобы сообщить Cabal, если тесты были успешными или нет.

+0

спасибо за ваш ответ. Невозможно ли «вывести» вывод outputcode-stdio, если я не проанализирую файл, созданный cabal? – Randomize

+0

Выход также записывается на стандартный вывод: вы видите, что тесты работают так, как есть, а затем в конце вы получаете вывод в файле журнала. Таким образом, вы должны иметь возможность транслировать вывод теста cabal во что-то другое. –

+0

Так что даже UserHooks API не могут этого избежать. Тем не менее мне нужен какой-то синтаксический анализ текста. – Randomize