2016-02-18 51 views
3

我的目錄遵循以下結構:摩卡的水珠行爲

src 
    /test 
    - file-test.js 
    - file.js 

我的摩卡腳本使用

mocha -R spec --recursive ./**/*-test.js 

這導致Error: Cannot find module 'tap'的幻想錯誤。

但獨有的以下兩個選項工作

  1. mocha -R spec --recursive ./src/**/*-test.js
  2. 重命名file-test.jsfile.test.js和使用mocha -R spec --recursive ./**/*.test.js

但我不知道爲什麼這兩個選項的工作,和我原來的計劃確實不。

+0

只是一個想法,但你可以嘗試逃跑的減號,像這樣'摩卡-R spec - 遞歸./**/*\- test.js'。也許甚至多次,一次爲bash,一次爲JS。可能依賴正則表達式匹配 – martinczerwi

+0

@martinczerwi:我試過以下兩種: '「test」:「mocha -R spec --recursive ./**/*\\- test.js」'和 '「測試「:」摩卡-R spec - 遞歸./**/*\\\- test.js「' 這兩個給我一個」無法解決路徑「錯誤 – user1778856

+0

@路易斯:這篇文章沒有幫助我問題。相反它導致無法解決路徑錯誤 – user1778856

回答

8

也許這是一個長鏡頭,但glob模式必須在雙引號之間,如果這是一個npm腳本:mocha -R spec --recursive "./**/*-test.js"。我與摩卡有類似的錯誤。

+0

[這是開放的問題](https://github.com/mochajs/mocha/issues/1115)要求在mochajs中提供這方面的文檔...這是正確的答案,但我應該提及,我注意到一個激烈的使用這種方法減速。這是其他人的經驗嗎? – chrisjlebron

+0

@chrisjlebron我不記得有減速,但我總是用摩卡這個語法,據我所知。我的測試不到一秒鐘。 – inf3rno

0

我知道這是一段時間後,但我有類似的問題,如果你指定一個匹配的文件模式,例如。 src/**/*.spec.js然後--recursive顯然是多餘的https://stackoverflow.com/a/43005752 以上有關轉義路徑的評論,因爲npm使用雙引號應該是正確的我相信。 因此,而不是像這樣: mocha --recursive ./**/*-test.js 這爲我工作: mocha \"./**/*-test.js\"

希望這有助於..