Tengo una aplicación que usa vue y express y tengo pruebas escritas para cada una, puedo ejecutar una prueba vue por sí sola o la prueba express por sí sola.
A continuación se muestra el archivo de configuración de jest que funcionará bien para Vue, si elimino el ajuste preestablecido, funcionará bien para mi prueba supertest/express.
module.exports = { // TODO: This line is needed for vue tests but breaks js tests preset: "@vue/cli-plugin-unit-jest", coverageDirectory: "test-reports/", coveragePathIgnorePatterns: [ "/node_modules/" ], reporters: [ "default", [ "jest-junit", { outputName: "vue_junit.xml", outputDirectory: "test-reports/", }, ], ], };Como referencia, aquí están las dos pruebas si ayudan.
// Libraries import Vuetify from "vuetify"; import Vue from "vue"; // Components import UserBar from "@/components/userBar.vue" // Utilities import { createLocalVue, shallowMount } from "@vue/test-utils"; // Setup Up const localVue = createLocalVue(); const vuetify = new Vuetify(); Vue.use(Vuetify); describe("userBar.vue", () => { let wrapper; beforeEach(() => { wrapper = shallowMount(UserBar, { localVue, vuetify, }); }); afterEach(() => { wrapper.destroy(); }); it("wrapper created properly", () => { expect(typeof wrapper).toBe("object"); }); });prueba exprés
var request = require('supertest'); import * as local from '../../server'; var express = require('express'); var app = express(); describe('loading express', function () { var server; beforeEach(function () { delete require.cache[require.resolve('../../server/index')]; server = local.default(app); }); afterEach(function (done) { server.close(done); }); it('responds to /client', function testSlashHealth(done) { request(server) .get('/client') .expect(200, done); }); it('404 everything else', function testPath(done) { request(server) .get('/foo/bar') .expect(404, done); }); });Se solucionó esto especificando 2 archivos de configuración al probar
broma -c broma.config.express.js
broma -c broma.config.vue.js