the vue unit test is configured as follows, but the final result is shown in the figure. Why is there no component under test?
specs
import Vue from "vue"
import HelloWorld from "../../../examples/components/HelloWorld.vue"
describe("HelloWorld.vue", () => {
it("should render correct contents", () => {
const Constructor = Vue.extend(HelloWorld)
const vm = new Constructor().$mount()
expect(vm.$el.querySelector(".hello h1").textContent)
.to.equal("Welcome to Your Vue.js App")
})
})
index.js
import Vue from "vue";
Vue.config.productionTip = false;
// require all test files (files that ends with .spec.js)
const testsContext = require.context("./specs", true, /\.spec$/);
testsContext.keys().forEach(testsContext);
// require all src files except main.js for coverage.
// you can also change this to match only the subset of files that
// you want coverage for.
const srcContext = require.context("../../examples", true, /^\.\/(?!main(\.js)?$)/);
let arr = srcContext.keys().filter(item => {
return item !== "./index.html"
})
arr.forEach(srcContext);
karma.config.js
// This is a karma config file. For more details see
// http://karma-runner.github.io/0.13/config/configuration-file.html
// we are also using it with karma-webpack
// https://github.com/webpack/karma-webpack
var webpackConfig = require("../../build/webpack.test.conf");
module.exports = function (config) {
config.set({
// to run in additional browsers:
// 1. install corresponding karma launcher
// http://karma-runner.github.io/0.13/config/browsers.html
// 2. add it to the `browsers` array below.
browsers: ["PhantomJS"],
frameworks: ["mocha", "sinon-chai", "phantomjs-shim"],
reporters: ["spec", "coverage"],
files: ["./index.js"],
preprocessors: {
"./index.js": ["webpack", "sourcemap"]
},
webpack: webpackConfig,
webpackMiddleware: {
noInfo: true,
},
coverageReporter: {
dir: "./coverage",
reporters: [
{ type: "lcov", subdir: "." },
{ type: "text-summary" },
]
},
});
};