2015-10-10 98 views
1

我想通過一個咕嚕任務在現場服務器上運行我的portractor測試。 我已經安裝了live-server(https://www.npmjs.com/package/live-server)和grunt-execute。隨着咕嚕執行我設法在2個步驟與咕嚕命令啓動直播服務器:通過咕嚕在現場服務器上運行量角器

月1日我創建了一個節點腳本(liveServer.js)

var liveServer = require("live-server"); 

var params = { 
    port: 8080, 
    host: "localhost", 
    open: true, 
    wait: 1000 
}; 
liveServer.start(params); 

第二個我創建了一個任務,我咕嚕文件啓動腳本: (在grunt.initConfig)

execute: { 
    liveserver: { 
     src: ['liveServer.js'] 
    }, 
} 

和註冊的命令來觸發它:

grunt.registerTask('live', [ 
    'execute:liveserver' 
]); 

現在,如果我在我的命令行實時服務器啓動中運行「grunt live」,將打開一個瀏覽器,並且可以瀏覽我的應用程序。

我也在我的grunt文件中創建了一個量角器任務,它也工作得很好。
(在grunt.initConfig)

protractor: { 
    options: { 
     keepAlive: false, 
     noColor: false 
    }, 
    e2e: { 
     options: { 
      configFile: 'protractor.conf.js', 
     } 
    } 
}, 

如果我有一個註冊任務量角器測試運行得很好觸發它,只是我必須確保活服務器第一次運行。 因此,我想結合這兩個命令啓動實時服務器,然後運行我的量角器測試。 所以,我想:

grunt.registerTask('runProtractor', [ 
    'execute:liveserver', 
    'protractor' 
]); 

但不幸的是,這並不工作,實時服務器開始,然後......沒有任何反應,量角器測試無法運行。我嘗試改變一些活的服務器參數,如打開和等待,但沒有任何運氣。也沒有錯誤消息。

正如我以前說過單獨的任務工作都很好(有兩個命令窗口,首先在一開始直播服務器,然後在其他量角器)

沒有任何人有一個線索,爲什麼我不後繼續活服務器已啓動?

回答

1

活服務器的執行會阻塞所有後續任務,因爲它沒有「完成」,即咕嚕任務仍在運行,這就是爲什麼它不會繼續執行下一個任務。您可以使用grunt-concurrent並行運行任務。

+0

謝謝卡米爾!我使用grunt-concurrent工作。 – Michiel