2013-07-01 66 views
7

有了:約曼 '咕嚕測試' 清潔項目失敗了 '端口已在使用'

  • 的Mac OS 10.8.4
  • 節點0.10.12
  • NPM 1.3.1
  • 咕嚕-cli 0.1.9
  • 喲1.0.0-RC.1
  • 亭子0.9.2
  • [email protected]

我遇到一個乾淨yo angular項目下面的錯誤,其次是grunt server然後grunt test

Running "connect:test" (connect) task 
Fatal error: Port 9000 is already in use by another process. 

我是新來的約曼和我難住了。我已經刪除了我的原始項目,並在全新的文件夾中創建了一個新項目,以確保我沒有忽略任何不可見的配置。我重新啓動了機器,以確保我沒有運行任何我已經忘記的臨時服務器進程。在所有嘗試之後,基本服務器都會正常啓動,並附加到Chrome,並且觀察者在更改瀏覽器時更新瀏覽器。 (值得注意的是,服務器運行在9000上,這對測試運行者來說也嘗試使用9000似乎很奇怪)。但是我試圖啓動測試運行器時遇到同樣的錯誤。

這是我可以解決的問題,還是我應該向Yeoman團隊報告的問題?謝謝。

+0

您是否嘗試在Gruntfile.js中更改測試任務的端口?正如你提到的那樣,livereload和test默認使用相同的端口,所以這可能是問題所在。 – Narretz

+1

這是奇怪的事情:他們都似乎使用相同的數據。如果我將connect.options.port更改爲9001,則livereload和test都會嘗試使用9001,而我所得到的只是錯誤中的一個不同的端口號。我很困惑,爲什麼會這樣寫,以及爲什麼不會有兩個單獨的配置與單獨的端口號。 – XML

+0

我猜測默認配置並不假設你運行服務器並同時進行測試。也許它應該在文件更改時自動運行測試,或者在構建之前運行它們。 – Narretz

回答

2

我創建了一個新的配置屬性:connect.test.options.port,並將其設置爲9001.現在它們似乎在單獨的端口上正常運行。

還請注意,Gruntfile.js覆蓋karma.conf.js中的singleRun屬性。如果您希望karma.conf.js中的配置正常工作,請評論/切斷這一點。

編輯11/4/13: The issue也被其他人報告,似乎已經解決了發電機角度的變化。

+0

這個方法沒有運氣 – FutuToad

5

添加port: 9001測試,像這樣:

test: { 
    options: { 
    port: 9001, 
    ... 
    } 
} 
+0

是的,看到我上面的回答,我提到將'connect.test.options.port'設置爲9001。 – XML

+0

我試過這個,但沒有運氣,使用聚合物發生器 – FutuToad

1

我更改端口後,有一個XHR錯誤, The 'Access-Control-Allow-Origin' header has a value 'http://localhost:9000' that is not equal to the supplied origin. Origin 'http://localhost:9090' is therefore not allowed access. 這是9000開始,然後我改變咕嚕

connect: { 
    main: { 
    options: { 
     port: 9090 
    } 
    } 
} 
+0

明白了這是服務器問題,而不是客戶端。 – thisarattr