angular - Karma ng test visar inte byggfel i konsolen
Jag använder Karma med Jasmine för att köra tester i mitt Angular 7-projekt. Men jag stöter på ett väldigt irriterande scenario, där om det finns några fel i .spec.ts (eller .ts)-filer, visar inte ng test dessa fel i konsolen.
Till exempel, om jag har en duplicerad import i en fil:
import { DatepickerModule } from 'ngx-bootstrap';
import { DatepickerModule } from 'ngx-bootstrap';
@Component({...})
export class MyComponent { ... }
det normala ng serve rapporterar detta som ett fel. Men att köra ng test gör inte alltid detta, det bara misslyckas med att köra testerna, öppnar chrome med en tom sida, säger 'Väntar på localhost...', och misslyckas så småningom bara:
> ng test
10 % building modules 3 / 3 modules 0 active30 08 2019 11: 28: 31.213: WARN[karma]: No captured browser, open http://localhost:9876/
30 08 2019 11: 28: 31.296: INFO[karma - server]: Karma v4.2.0 server started at http://0.0.0.0:9876/
30 08 2019 11: 28: 31.297: INFO[launcher]: Launching browsers Chrome with concurrency unlimited
10 % building modules 4 / 5 modules 1 active ...b\projects\myProject\src\styles.scss30 08 2019 11: 28: 31.720: INFO[launcher]: Starting browser Chrome
30 08 2019 11: 29: 31.722: WARN[launcher]: Chrome have not captured in 60000 ms, killing.
30 08 2019 11: 29: 31.994: INFO[launcher]: Trying to start Chrome again(1 / 2).
30 08 2019 11: 30: 31.996: WARN[launcher]: Chrome have not captured in 60000 ms, killing.
30 08 2019 11: 30: 32.277: INFO[launcher]: Trying to start Chrome again(2 / 2).
30 08 2019 11: 31: 32.279: WARN[launcher]: Chrome have not captured in 60000 ms, killing.
30 08 2019 11: 31: 32.530: ERROR[launcher]: Chrome failed 2 times(timeout).Giving up.
Detta gör det mycket svårt att lista ut varför Karma inte startar testerna, och bara öppnar ett tomt fönster, med det kryptiska meddelandet Chrome har inte fångats på 60000 ms, avslutar.
Jag har försökt ställa in loggnivån från dokumentationen för konfigurationsfilen, men det verkar inte ens komma till den punkten där den laddar karma, eftersom den faktiska bygget misslyckas innan dess (tror jag).
Hur kan jag få bygget att rapportera dessa fel i spec.ts-filerna?
Redigera
Att köra kommandot med --watch=false rapporterar kompilationsfelen. På samma sätt, om du gör en ändring i en spec-fil, vilket orsakar att ombyggnaden triggas (om du har --watch=true), skrivs kompilationsfelet också ut i konsolen via cli.
Svar #1
Detta är inte den idealiska lösningen, men detta fungerar från den ursprungliga frågan:
Att köra kommandot med
--watch=falserapporterar kompilationsfelen. På samma sätt, om du gör en ändring i en spec-fil, vilket orsakar att ombyggnaden triggas (om du har--watch=true), skrivs kompilationsfelet också ut i konsolen via cli.