2013-07-01 8 views
7

Con:Yeoman 'test grunt' fallisce il progetto pulito con 'porta già in uso'

  • Mac OS 10.8.4
  • Nodo 0.10.12
  • npm 1.3.1
  • grugnito -cli 0.1.9
  • yo-1.0.0 rc.1
  • pergolato 0.9.2
  • [email protected]

ho incontrato il seguente errore con un progetto pulito yo angular, seguito da grunt server poi grunt test:

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

Sono nuovo di Yeoman e stumped. Ho cancellato il mio progetto originale e ne ho creato uno nuovo in una nuova cartella solo per assicurarmi che non trascurassi alcuna configurazione invisibile. Ho riavviato la macchina per assicurarmi che non stavo eseguendo alcun processo temporaneo del server di cui mi ero dimenticato. Dopo tutti i tentativi, il server di base si avvia correttamente, si collega a Chrome e l'osservatore aggiorna il browser in caso di eventuali modifiche. (In particolare, il server è in esecuzione su 9000, il che sembra strano per il test-runner anche provare a utilizzare 9000.) Ma ottengo lo stesso errore nel tentativo di avviare il runner di test.

È qualcosa che posso risolvere o un problema che dovrei segnalare al team Yeoman? Grazie.

+0

Hai provato a cambiare la porta per l'attività di test in Gruntfile.js? Come menzionato, livereload e test usano la stessa porta per impostazione predefinita, quindi questo potrebbe essere il problema. – Narretz

+1

Questa è la cosa strana: entrambi sembrano usare gli stessi dati. Se cambio connect.options.port in 9001, allora sia livereload che test provano a usare 9001 e tutto ciò che ottengo è un numero di porta diverso nell'errore. Sono sconcertato sul motivo per cui sarebbe stato scritto in quel modo, e sul perché non ci sarebbero due configurazioni separate con numeri di porta separati. – XML

+0

Suppongo che la configurazione di default non presupponga che si esegua il server e si esegua il test contemporaneamente. Forse è previsto che esegua i test automaticamente quando i file vengono modificati, o li eseguono prima della compilazione. – Narretz

risposta

2

Ho creato una nuova proprietà di configurazione: connect.test.options.port e l'ho impostata su 9001. Ora sembrano funzionare correttamente su porte separate.

Si noti inoltre che lo Gruntfile.js sostituisce la proprietà singleRun in karma.conf.js. Commentalo/taglialo se vuoi che la configurazione in karma.conf.js funzioni correttamente.

EDIT 11/4/13: The issue è stato segnalato anche da altri e sembra essere stato indirizzato con modifiche al generatore-angolare.

+0

senza fortuna con questo approccio – FutuToad

5

Aggiungi port: 9001 per testare, in questo modo:

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

Sì, vedi la mia risposta sopra, dove menziono l'impostazione di 'connect.test.options.port' su 9001. – XML

+0

Ho provato questo, ma senza fortuna, usando il generatore di polimeri – FutuToad

1

Dopo essere passato il porto, c'è un errore di 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. Era 9000 inizialmente e poi cambiare il grugnito

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

Capito che questo è il problema del server, non un client. – thisarattr