Тестирование приложения Nuxt js с AVA и TypeScript - PullRequest
0 голосов
/ 16 марта 2020

Я создаю приложение Nuxt с TypeScript и хочу провести модульное тестирование с помощью AVA. Однако, когда я пытаюсь запустить тест, я получаю:

✖ Не могу найти какие-либо файлы для тестирования

У меня установлено @nuxt/typescript-build и добавлено в мой nuxt.config.js

Структура проекта (исключая такие вещи, как пакет. json):

- components/
  - CardItem.vue
- test/
  - specs/
    -CardItem.spec.ts
  - ava.setup.js
- ava.config.cjs
- nuxt.config.js
- tsconfig.json

Это мой ava.config.cjs:

module.exports = () => {
  return {
    require: ['./test/ava.setup.js'],
    ignoredByWatcher: ['!**/*.{js,vue}'],
    babel: true,
    tap: false,
    verbose: false,
    color: true
  }
}

Это мой ava.setup.js:

require('browser-env')()
const hooks = require('require-extension-hooks')
const Vue = require('vue')

Vue.config.productionTip = false

window.Date = global.Date = Date

hooks('vue')
  .plugin('vue')
  .push()
hooks(['vue', 'js'])
  .exclude(({ filename }) => filename.match(/\/node_modules\//))
  .plugin('babel')
  .push()

Это мой tsconfig.json:

{
  "compilerOptions": {
    "target": "es2018",
    "module": "esnext",
    "moduleResolution": "node",
    "lib": ["esnext", "esnext.asynciterable", "dom"],
    "esModuleInterop": true,
    "allowJs": true,
    "sourceMap": true,
    "strict": true,
    "noEmit": true,
    "baseUrl": ".",
    "paths": {
      "~/*": ["./*"],
      "@/*": ["./*"]
    },
    "types": ["@types/node", "@nuxt/types"]
  },
  "exclude": ["node_modules"]
}

Это мой CardItem.spec.ts:

import test from 'ava'
import { shallowMount } from '@vue/test-utils'
import CardItem from '@/components/CardItem.vue'

test('renders it\'s graphic', async t => {
  const wrapper = shallowMount(CardItem)

  t.fail()
})

1 Ответ

1 голос
/ 16 марта 2020

Согласно this , Ava не ищет расширения файлов машинописи по умолчанию. Похоже, вам также нужно https://github.com/avajs/typescript, поэтому я рекомендую сначала выполнить README.

...