Как я могу проводить непрерывную сборку / модульное тестирование в Coffeescript? - PullRequest
5 голосов
/ 01 декабря 2011

Я пишу (еще больше) набор модульных тестов, используя Coffeescript и node.js. Я создаю файлы, используя опцию «watch» для кофе (-w)

coffee -w -b -c -o web/ src/

Моя проблема в том, что выполнение модульных тестов занимает 20 секунд (я предполагаю, что для компиляции в .js).

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

Мой текущий Cakefile:

fs            = require 'fs'
{print}       = require 'sys'
{spawn, exec} = require 'child_process'

build = (watch, callback) ->
  if typeof watch is 'function'
    callback = watch
    watch = false
  options = ['-c', '-b', '-o', 'web', 'src']
  options.unshift '-w' if watch

  coffee = spawn 'coffee', options
  coffee.stdout.on 'data', (data) -> print data.toString()
  coffee.stderr.on 'data', (data) -> print data.toString()
  coffee.on 'exit', (status) -> callback?() if status is 0

task 'test', 'Run the test suite', ->
  build ->
    require.paths.unshift __dirname + "/lib"
    {reporters} = require 'nodeunit'
    process.chdir __dirname
    reporters.default.run ['test']

1 Ответ

1 голос
/ 01 декабря 2011

Посмотрите на Cakefile для моего проекта connect-assets: https://github.com/adunkman/connect-assets/blob/master/Cakefile

Он немного сложнее, чем у sstephenson (который, как я полагаю, основан на вашем примере), но показывает, как вы можете просматривать каталог файлов на наличие изменений и реагировать на эти изменения, повторно запуская тесты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...