jasminekarma-jasminekarma-runnerweb-componentkarma-mocha

why "[web-server]: 404: /absoluteC" when running karma


I found several similar question but none of the suggestions fixed my issue. Basically they are suggesting add some dependency (I am using only native webcomponents so it doesn't appliy to my case) or check the path. I checked carefully and the path is 100% correct. I found a bit strange that the warnning message shows absolute before the real path. BTW, the path is really coorect.

Whole code github

Karma.conf.js

module.exports = function(config) {
    config.set({
        frameworks: ["jasmine"],
        files: [
            "../node_modules/@webcomponents/webcomponentsjs/webcomponents-bundle.js",
            { pattern: "../test/*-test.js", type: "module", included: true }
        ],
        exclude: [],
        preprocessors: {},
        reporters: ["spec"],
        port: 9876,
        colors: true,
        logLevel: config.LOG_INFO,
        autoWatch: true,
        browsers: ["Chrome"],
        singleRun: true,
        concurrency: Infinity
    });
};

console message

# npm test

> sktscanner-flight-search@0.1.0 test C:\_d\WSs\rapidapi-vanilla-webcomponents\skyscanner-webcomponents
> karma start config/karma.conf.js

06 08 2019 19:22:55.229:INFO [karma-server]: Karma v4.2.0 server started at http://0.0.0.0:9876/
06 08 2019 19:22:55.251:INFO [launcher]: Launching browsers Chrome with concurrency unlimited
06 08 2019 19:22:55.261:INFO [launcher]: Starting browser Chrome
06 08 2019 19:22:58.972:INFO [Chrome 75.0.3770 (Windows 10.0.0)]: Connected on socket xwPc3314bVDtrBgaAAAA with id 78516319
06 08 2019 19:22:59.161:WARN [web-server]: 404: /absoluteC:/_d/WSs/rapidapi-vanilla-webcomponents/skyscanner-webcomponents/public/skyscanner-flight-search/skyscanner-flight-search.js
06 08 2019 19:22:59.165:WARN [web-server]: 404: /absoluteC:/_d/WSs/rapidapi-vanilla-webcomponents/skyscanner-webcomponents/test/test-utils.js

Chrome 75.0.3770 (Windows 10.0.0): Executed 0 of 0 ERROR (0.008 secs / 0 secs)

npm ERR! Test failed.  See above for more details.

unit test

import { SkyscannerFlightSearch } from "../public/skyscanner-flight-search/skyscanner-flight-search.js";
import { TestUtils } from "./test-utils.js";
describe("simplest test", () => {
    it("first try (using TestUtils)", async() => {
        const { shadowRoot } = await TestUtils.render("skyscanner-flight-search");
        expect(shadowRoot.querySelector("#firstdiv")).toBeTruthy();
    });
});

Solution

  • Because Karma by default runs on port 9876, it doesn't have ability to look too deep into your project. Instead it hijacks your component and assumes everything is accessible from that port (which it is not)....

    You can redirect Karma to your "real ports" using this guide