2012-08-02 82 views
21

有沒有我的測試可以在沒有Meteor的情況下運行的地方?單元測試應放在流星的哪個位置?

我剛開始我的第一個流星項目,並開始編寫單元測試Mochashould.js。雖然摩卡運行沒有問題,但測試可防止Meteor啓動,因爲它使用節點的require而不是__meteor_bootstrap__.requirefull error message)有問題。

這就是說,流星不應該運行我的測試!根據Meteor documentation,代碼只能放在客戶端,服務器或兩者上。單元測試套件不屬於這些類別,我對not the only person錯過了Meteor缺乏定位自動化測試的明確位置。

現在,我的測試中都保存在server/test/,裹着塊中的每個文件的內容:

if (typeof(Meteor) === 'undefined') { ... } 

雖然這個作品,給人的感覺並不優雅。您是否有任何其他建議用於構建Meteor應用程序的測試?

更新:代替在流星文檔明確的指示,我跟着Rails folder conventions(第4款),使用存儲在我的測試資產稱爲test文件夾。我後來將其移至server/test,因爲我不希望它在客戶端上加載。

+0

這需要升級。我相信流星速度和茉莉花現在是不錯的選擇。 – 2016-01-07 13:08:03

回答

18

將您的測試放在tests/文件夾中。與Rails不同,Rails爲此使用名爲test的文件夾,Meteor使用複數tests作爲此文件夾名稱。

存儲在名爲「tests」的文件夾中的資產將被Meteor完全忽略;這些資產將不會加載到客戶端服務器上。具有諷刺意味的是,我被一個有opposite issue誰希望他們的Meteor客戶端加載測試的人告發。

+1

我不知道這種行爲是否記錄在某處。 – punund 2012-10-04 19:39:03

+5

此問題已記錄在官方流星文檔的[「結構化您的應用程序」](http://docs.meteor.com/#structuringyourapp)部分。 – Blackcoat 2012-11-23 20:57:36

2

從0.6.0開始,一個有趣的方法是專門爲您的應用程序使用本地智能包,可以使用Meteor的tinytest輕鬆測試。您將擁有智能軟件包以外的最低限度代碼來引導您的應用程序。

編輯:我已經做了這種方法,我甚至不需要裸露的最低限度的代碼在智能包之外。整個應用程序是包。

1

將您的測試文件放在tests文件夾中,你應該沒問題。如果您的應用程序使您有多個嵌套在serverclient文件夾中的文件,則可以在tests/clienttests/server目錄中複製類似的文件夾結構。不是一個規則,但我認爲它有助於維護,並且我有過花費幾個小時來調試缺少類錯誤的經驗,這個錯誤只是通過組織測試文件夾中的文件結構來解決。

1

由於這是2012年的問題,在這裏沒有單一的綜合答案,我想在這裏嘗試一個。

這是一個good starting point開始考慮測試你的流星項目。

簡而言之 第一步:流星新增三條:茉莉 第二步:流星增加速度:HTML-記者

這樣做的那一刻,如果你的應用程序運行(或當您啓動應用程序恢復運行),在瀏覽器的右上角 - 打開應用程序的位置打開 - 您將開始看到閃爍的點。而已。你現在已經有了你的測試框架。

現在你可以在這個框架的幫助下生成一個目錄結構。當你點擊那個閃爍的點時,你會看到如下的彈出窗口。

Velocity Test Status

這對生成的test目錄的結構方便的鏈接。

或者,您可以手動完成,如下所示。 接下來就是決定目錄結構。 Meteor Documentation says enough about it. You need to have tests folder in your project root

here開始提示,你可以這樣下去。

<projectRoot> 
|---jasmine 
     |---client 
      |--- integration 
         |---- my.first.integration.spec.js 
     |---client 
      |--- unit 
         |---- my.first.unit.spec.js 
|---jasmine 
     |---server 
      |--- integration 
         |---- my.first.integration.spec.js 
     |---server 
      |--- unit 
         |---- my.first.unit.spec.js 

和中提琴,開始寫你的茉莉花測試。這些帖子可以進一步幫助你。