2012-01-30 2 views
7

У меня установлен жасминовый узел с использованием npm. Структура каталогов моего проекта являются следующие:Почему jasmine-node не находит мои файлы spec?

|-lib\ 
    |-taxCalc.js 
|-spec\ 
    |-taxCalc.spec.coffee 
    |-taxCalc.spec.js 
|-src\ 
    |-taxCalc.coffee 

При запуске жасмин-узел из корневой папки с помощью следующей команды (для CoffeeScript):

jasmine-node --coffee --verbose spec 

Finished in 0.015 seconds 
0 tests, 0 assertions, 0 failures 

То же, если я запускаю версию JavaScript.

Если я явно указывают на спецификации тестов файлов работать нормально:

jasmine-node --coffee --verbose spec/taxCalc.spec.coffee 

Tax calculation 
    calculates tax 

Finished in 0.009 seconds 
1 test, 1 assertion, 0 failures 

Документация говорит, что имена файлов должны заканчиваться «spec.js» или «spec.coffee», так что все, кажется, хорошо.

P.S. Я бегу на Windows 7.

+0

Единственное, что я знаю, это то, что для окон требуются пути в node.js для обработки по-разному. Exmpl; «C:/bla» должно быть «C: \/bla». может быть, что dev of jasmine не тестируется на окнах. – japrescott

+0

Спасибо за идею. Я попытаюсь проверить RegEx, используемый в жасминовом узле, если он найдет конкретные пути к Windows. – marisks

+0

У меня есть проект в Windows со структурой, похожей на вашу, но я не сталкиваюсь с вашей проблемой. Разве это имеет значение, если вы более явны, поскольку spec является каталогом: '' 'jasmine-node - coffee --verbose. \ Spec \' ''? –

ответ

2

Наткнулся на ту же проблему и слишком поздно прочитал ссылку MarisKs:/- но пришел к такому же выводу, как описано в выпуске: По крайней мере, в Windows 7 file.stat.ino возвращает всегда 0, поэтому функция createInodeChecker() в findit/index.js возвращает всегда true, и файл будет пропущен.

Самый простой на лету затруднительного: редактировать createInodeChecker к

function createInodeChecker() { 
    var inodes = {}; 
    return function inodeSeen(inode) { 
     if (inode == 0) { 
      return false; 
     } 

     if (inodes[inode]) { 
      return true; 
     } else { 
      inodes[inode] = true; 
      return false; 
     } 
    } 
} 

Не приятно, но вы можете работать с ним.

+0

Протестировано. Он отлично работает! Я также предложил ваше решение для «findit»: https://github.com/substack/node-findit/issues/5 – marisks

3

Ясмин-узел был обновлен на прошлой неделе, чтобы использовать walkdir вместо findit, который теперь делает его функцией в окнах. Повторно запустите npm install jasmine-node для обновления.

Смежные вопросы