Inch High
Inch High

Reputation: 845

Jest - No output of test results

I've been having difficulties with Jest ever since I tried to begin using it. No tests I try to run and with what options I try to pass Jest, I never get the 'Pass' / 'Fail' output results in the console.

Jest always just outputs 'Done'

Using the 'Nuxt CLI' there is a default test written as:

import { mount } from '@vue/test-utils'
import Logo from '@/components/Logo.vue'

describe('Logo', () => {
  test('is a Vue instance', () => {
    const wrapper = mount(Logo)
    expect(wrapper.isVueInstance()).toBeTruthy()
  })
})

So far I have tried:

yarn test
yarn test --verbose
yarn test --watch
yarn test --watchAll
yarn test --no-watchmen

Every single time, the result is as follows:

yarn run v1.21.1
$ jest
Done in 0.72s.

Current jest.config.js:

module.exports = {
  moduleNameMapper: {
    '^@/(.*)$': '<rootDir>/$1',
    '^~/(.*)$': '<rootDir>/$1',
    '^vue$': 'vue/dist/vue.common.js'
  },
  moduleFileExtensions: ['js', 'vue', 'json'],
  transform: {
    '^.+\\.js$': 'babel-jest',
    '.*\\.(vue)$': 'vue-jest'
  },
  collectCoverage: true,
  collectCoverageFrom: [
    '<rootDir>/components/**/*.vue',
    '<rootDir>/pages/**/*.vue'
  ]
}

This seems to be the default config for Nuxt.

Any help would be appreciated

Upvotes: 1

Views: 5877

Answers (2)

Inch High
Inch High

Reputation: 845

So I figured it out (kind-of).

My tests run fine with the following:

yarn test --no-watchman

I can't figure out why watchman is causing me so many issues but this does seem to help.

More Info: https://github.com/facebook/jest/issues/2219

Upvotes: 2

madhu sudhan
madhu sudhan

Reputation: 177

Jest looks for files ending with .spec.js or .test.js file formats. Try putting your test in a file ending with .spec.js or .test.js file. Also you can configure jest, using jest.config.js file.

One such example of using jest.config.js file is

const path = require('path')

module.exports = {
    rootDir: path.resolve(__dirname),
    moduleFileExtensions: [
        'js',
        'json',
        'vue',
        'ts'
    ],
    moduleNameMapper: {
        '^@/(.*)$': '<rootDir>/src/$1'
    },
    transform: {
        ".*\\.(vue)$": "<rootDir>/node_modules/vue-jest",
        "^.+\\.(js|jsx)?$": "<rootDir>/node_modules/babel-jest",
        "^.+\\.ts$": "<rootDir>/node_modules/ts-jest"
    },
    testRegex: "(/__tests__/.*|(\\.|/)(test|spec))\\.(jsx?|tsx?)$",
    snapshotSerializers: [
        "jest-serializer-vue"
    ],
    testEnvironment: "jsdom",
    setupFiles: [
        "<rootDir>/globals.js"
    ]
}

Upvotes: 0

Related Questions