2014-10-11 52 views
0

所有browserified摩卡測試我的JavaScript應用程序,它使用browserify並在運行Phantom.js和其他瀏覽器摩卡測試的瀏覽器。運行在文件夾

測試使用test/tests.js文件作爲切入點,我要求每個文件:

// ... 
// Require test files here: 
require('./framework/extendable.test'); 
require('./framework/creator.test'); 
require('./framework/container.test'); 
require('./framework/api_client.test'); 
// ... 

這是非常繁瑣的,我希望能夠要求整個文件夾。

我試過使用include-folder這隻加載每個文件的內容(我不想eval由於顯而易見的原因)。

我也看過require-dir,但Browserify似乎沒有拿起要求調用。

+0

我不同意這很乏味。這就是節點的工作原理,我認爲顯式行爲比隱式行爲好得多。 – naomik 2014-10-11 15:15:15

+0

也請看[webpack](http://webpack.github.io/) – naomik 2014-10-11 15:16:12

+0

這是一個我並不真正需要明確行爲的案例。如果可以隨意更改它們所需的順序,我會更加高興。 – max 2014-10-11 15:41:33

回答

1

您可以使用Karma(https://github.com/karma-runner/karma)在多個瀏覽器(PhantomJS,FF,IE,通過WebDriver在本地或遠程進行本地或遠程)運行您的Mocha測試。

然後,您可以使用karma-bro(https://github.com/Nikku/karma-bro)預處理器。它將通過瀏覽器將您的測試捆綁在一起,僅用於測試目的。

因此,您可以在Karma配置中指定包含您的測試的文件夾。

這就是我這樣做的方式。

+0

我想如果我可以在'karma.config.js'中指定一個glob,那麼我真的不需要瀏覽我的測試。我只是使用browserify來提取所有文件,這樣我就不需要在我的'TestRunner.html'中添加腳本標記。那麼去學習Karma吧。謝謝! – max 2014-10-11 16:09:24

+0

是的,沒錯。如果使用節點的require()來包含模塊,則只需要它。 – dsuckau 2014-10-11 16:18:05

+0

還有Mochify(https://github.com/mantoni/mochify.js),它正是爲這個用例而準備的。 – mantoni 2014-10-25 22:12:43

0

您也可以編寫自己的簡單轉換,它將簡單替換指定文件夾名稱與require調用列表。即使有必要的隨機就地。這並不難。我正在爲自己做許多轉換來緩解這種情況。

+0

我想我可以使用[Concatenify](https://github.com/trodrigues/concatenify)之類的東西,但我已經設置了Karma,並且我喜歡即使在運行時也能得到正確的文件/行號的事實雖然Phantom.js(gulp-mocha-phantomjs不使用源地圖,所以你在消減文件中得到一行)。 – max 2014-10-12 21:01:25

相關問題