Karma Start Fails - HeadlessChrome - ERROR Uncaught [object Object]

后端 未结 4 699
不知归路
不知归路 2020-12-15 06:49

I am using Karma to run test on my Angular 4 app. It works locally but when it runs on my host environment (Travis CI) it fails with the following informati

相关标签:
4条回答
  • 2020-12-15 07:30

    This is what fixed it for me:

    I searched the whole project for occurrences of HttpClientModule in all *.spec.ts files. Turned out I had a few!

    Then I replaced all occurrences of

    import { HttpClientModule } from '@angular/common/http';
    

    with

    import { HttpClientTestingModule } from '@angular/common/http/testing';
    

    And then I made sure that the entry in the imports array of each of my test's TestBed.configureTestingModule was changed from HttpClientModule to HttpClientTestingModule.

    And finally I turned my Wifi off and ran the tests again. And voilà: It worketh!

    0 讨论(0)
  • 2020-12-15 07:39

    There is another way you can have this error too :

    For me it was that I forgot to make the call to

        beforeEach(() => {
          TestBed.configureTestingModule({
          });
        });
    

    My guess is that if this is not called it gets the NgModule from the AppModule and thus trying to import all the modules in there which cause this problem

    0 讨论(0)
  • 2020-12-15 07:44

    Full disclosure, I'm the guy that fixed this problem with Justin.

    The problem is that we were importing modules into our unit tests. These modules have a component that has ngOnInit which makes an HTTP request. The module injects the real component into the test and it tries to make its HTTP request but fails. Because it's out of the normal stack, the stack trace gives us the very unhelpful error Uncaught [object Object].

    In order to avoid that problem and for the component to not be undefined we use Christian Nunciato's helpful ng2-mock-component library to make a mock component that takes all the same inputs.

    Because the mocked component has its own unit tests, we don't care if the unit tests on the parent component don't test the child at the same time.

    0 讨论(0)
  • 2020-12-15 07:51

    In my case the Problem was that a component test, with child-components that make a http call in their ngOnInit method, did not have the HttpClientTestingModule imported. If you run the tests and open the devtools on the network page you can check if http calls are made during the tests. Once the module was imported no http calls were made during the tests.

    0 讨论(0)
提交回复
热议问题