2013-05-08 103 views
1

我是茉莉花的新手,請糾正我,如果我問一個錯誤的問題。茉莉花有更好的模塊化

我的工作裏面有很多的Java腳本代碼的遺留系統。我想寫一些相同的測試。起初,我考慮過使用buster,因爲它處於測試階段,我沒有多少探索它。與此同時,我搜索到了茉莉花。在茉莉花寫作測試很簡單,maven插件使茉莉花與CI整合,我們也可以獲得覆蓋報告。所以我覺得要用茉莉花。

在我們目前的傳統系統有幾個JS,這需要是一個大量的重構。但要開始寫一些測試,我需要一些幫助。讓我講述我面臨

的問題,我們有很多有衝突的函數名的腳本和全局變量等。因此,在pom或jstestconf文件中指定jsSource非常麻煩,因爲我需要排除少量文件,有時需要測試的腳本可能會有相互衝突的函數名稱。另外一些腳本可能依賴於其他腳本等等。

是否有茉莉下面提到的情況下可以實現的一種方式。

Test1.js

  • 包含特定的庫,但不包括共同一旦
  • 包括其中需要測試
  • 然後寫測試

的Java腳本(Source1.js)源Test2.js

  • 包括SP ecific庫,排除常見一旦
  • 包括JavaScript源(Source2.js),它需要進行測試 到測試
  • 然後寫測試類似於JUnit的

的東西,我們說包括類需要進行測試。

做我用requirejs我能做到這一點知道的一些初始搜索。但我找不到任何具體的例子。

我會進一步處理之前需要你的意見。 也沒有任何其他的測試框架,我使用具有與Maven & Eclipse和試驗更好的模塊很好的融合。

+0

你可能會考慮擺在你的問題關於Maven和eclipse集成分開?但是,一個快速搜索顯示,有一些努力來整合Karma和eclipse:http://litebyte.net/blog/how-to-run-karmajs-from-eclipse/; https://github.com/karma-runner/maven-karma-plugin – ossek 2014-02-04 16:46:39

回答

0

我一直在使用Karma來運行茉莉花測試,並且您可以通過karma.conf.js files property指定Karma包含的文件。所以你可以爲Test1.js和Test2.js設置兩種不同的配置。例如(假設你有node_modules和你的其他文件是my-application-root下:

用於配置1:

module.exports = function(config){ 
    config.set({ 
    basePath : './', 

    //files to load in the browser 
    files : [ 
    'my-application-root/specific-library-1.js', 
    'my-application-root/Source1.js', 
    'my-application-root/test/Test1.js', 
    'my-application-root/node_modules/**/*.js' 
    ], 

    exclude : [ 
    'my-application-root/common-lib.js', 
    'my-application-root/specific-library-2.js', 
    ], 

....... 

和配置2:

module.exports = function(config){ 
    config.set({ 
    basePath : './', 

    //files to load in the browser 
    files : [ 
    'my-application-root/specific-library-2.js', 
    'my-application-root/Source2.js', 
    'my-application-root/test/Test2.js', 
    'my-application-root/node_modules/**/*.js' 
    ], 

    exclude : [ 
    'my-application-root/common-lib.js', 
    'my-application-root/specific-library-1.js', 
    ], 

.......